Matplotlib&seaborn Part.1

准备工作

导入要使用的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb  #sns也可以

%matplotlib inline

柱状图(条形图)

sb.countplot(data = 此处写数据df, 
x(或者是y) = 列的名字, 
color = 一个三项元组(由来可由下面来得到), order = 排序后的列表(可通过pd.series.value_counts()方法得到排序结果), 
hue = x如果设置的是大分类,hue就是设置的小分类, 
palette=颜色格式,
以及其他参数最好自己尝试然后记录一下…………);
#难得的有个分号在后面,并非必须,有分号就是只显示图,干净利落一点
(1)sb.color_palette
#会用来返回当前图表中所使用到的颜色,比如第一个柱子的颜色,是由一个三项的元组组成(为什么三项,画图工具调色里也有,红绿蓝配比)
Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True) 
#可以通过pd Series方法来返回包含唯一值计数的对象。结果对象将按降序排列,以便第一个元素是最常出现的元素。 默认排除NA值。具体参数含义可以参考文档

(2)matplotlib xticks yticks
#在matplotlib中ticks表示的是刻度,而刻度有两层意思,一个是刻标(locs),一个是刻度标签(tick labels)。在作图时,x轴y轴都是连续的,所以刻标可以随意指定,就是在连续变量上找寻位置,而刻度标签则可以对应替换
xticks()返回了两个对象,一个是刻标(locs),另一个是刻度标签
locs, labels = xticks()

plt.xticks(有两个重要的可选,一个是刻度列表,一个是每一个刻度显示的标签,剩下都是关键字参数,比如rotation = 旋转多少度)
plt.yticks(跟xticks类似的)
# 显示x轴的刻标
xticks( arange(6) )
# 显示x轴的刻标以及对应的标签
xticks( arange(5), ('Tom', 'Dick', 'Harry', 'Sally', 'Sue') )

(3)pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
#melt该功能描述很复杂啊,主要是选定几列作为基准行(id_vars),将另外选定的几行作为行内的属性
#举个例子
>>> import pandas as pd
>>> df = pd.DataFrame({'A': {0: 'a', 1: 'b', 2: 'c'},
...                    'B': {0: 1, 1: 3, 2: 5},
...                    'C': {0: 2, 1: 4, 2: 6}})
>>> df
   A  B  C
0  a  1  2
1  b  3  4
2  c  5  6
>>> pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])
   A variable  value
0  a        B      1
1  b        B      3
2  c        B      5
3  a        C      2
4  b        C      4
5  c        C      6

(4)matplotlib.pyplot.text(x, y, s, fontdict=None, withdash=False, **kwargs)
#将文本s添加到位于数据坐标中的位置x,y处的轴
#x,y是指位置,s就是要显示的text内容,剩下参数就自行研究了
#

countplot
color_palette
value_counts
matplotlib xticks yticks
pandas.melt
matplotlib.pyplot.text
matplotlib.pyplot.bar

饼图

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None,
autopct=None, pctdistance=0.6, 
shadow=False, labeldistance=1.1, 
startangle=None, radius=None, 
counterclock=True, wedgeprops=None,
textprops=None, center=(0, 0), frame=False,
rotatelabels=False, hold=None, data=None)

制作一个数组x的饼图。 每个部分的分数面积由x / sum(x)给出。 如果sum(x)<1,那么x的值直接给出分数区域,并且数组不会被归一化。 结果派将有一个大小为1 - sum(x)的空部分。
各个部分是逆时针绘制的,默认从x轴开始。

必选参数x是Series数据,labels可自定义,startangle决定了起始的角度默认是x轴,counterclock是说逆时针还是顺时针。
其他具体参数含义需参考api文档。

pie 饼图

直方图

matplotlib.pyplot.hist(x, bins=None, range=None, density=None, 
weights=None, cumulative=False, bottom=None, histtype='bar', 
align='mid', orientation='vertical', rwidth=None, log=False, 
color=None, label=None, stacked=False, normed=None, hold=None, 
data=None, **kwargs)
主要作用是计算并绘制x的直方图。如果输入包含多个数据,
则返回值是一个元组(n,bin,patches)或([ n0,n1,...],bin,[ patches0,patches1,...])。
x :唯一一个必选参数,表示输入的数据,np的array或者pd的series,dataframe都可以
bin : 整数或序列(列表或者array等等都可以),是可选的
整数的话,就是整数个柱子
序列的话,就是给出的序列作为柱子的边缘,
比如[1,2,3,4],那么第一个柱子 (包括1,但不包括2),依次类推,共有3个,分别是,[1, 2)[2, 3)[3, 4],序列呢,就是可以设置的不那么平均了。
rwidth: 柱体间隔,间隔空隙暗示值是离散的
range:元组或None
决定了bin的上限和下限。较低和较高的异常值将被忽略。(x.min(), x.max())
另外,如果设置了bins为一个序列的话,那么range会无效注意下。
density:布尔型
如果设置为True,会让返回的n的值相加为1。决定的是每个格子频率占总数的百分比。
cumulative:布尔型
如果设置为True,图表就变成了累积型,返回的n也是变成累加的值,而不是原来那种只有自己的值,确切来说,是后面的一个bin是前面的bin的值加上自己的值。
weights:n或者是序列
就像名字一样,权重,是一组与x形状相同的权重,当然,如果density设为True,weights不生效
还有很多其他参数,不再描述,可以看官方文档学习,另外,要多练习哦

hist直方图

seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, 
hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, 
vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)

a:必须为Series, 1d-array, 或者 list.不像matplotlib.pyplot.hist那样,第一个数据可以是dataframe
hist=True, kde=True,特别注意下,这两个参数默认为True
hist为True的情况下会有矩阵的柱形图
kde是指Kernel Density Estimation核密度估计,通俗点说,所谓核密度估计,就是采用平滑的峰值函数(“核”)来拟合观察到的数据点,从而对真实的概率分布曲线进行模拟。所以,True是会将数据绘制成曲线,曲线下的面积为1。
rug是指轴须图,每根须都对应着一个数据,数据密了自然就粗了,一般和其他一些统计图形(比方说密度曲线之类的)结合着用,轴须图可以更好的帮助了解原始数据的信息(位置)。
如果你用不到distplot提供的这些功能,只是想看看分步,用matplotlib.pyplot.hist足以。

seaborn.distplot

常用plt方法

plt.figure
matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs)
作用是用来创建一个新的图像实例
常用这两个:
num:类似窗体的id号,或者说窗体标题
figsize:以英寸为单位的宽高

plt.subplot
subplot(nrows, ncols, index, **kwargs)
创建一个坐标轴,按照坐标轴来填充位置,从坐标轴1号位开始沿x轴递增
plt.subplot(211)跟plt.subplot(2,1,1)是一个意思
就是说建立了一个两行一列的坐标轴,图表的位置在第一行第一列。

plt.xlim(xmin, xmax)
plt.ylim(ymin, ymax)
xlim设置坐标值的最左值和最右值
ylim设置坐标值的最上值和最下值

plt.xscale
首先如果数据近似符合分布的数据。即采用原始单位的话,看起来非常偏态:很多数据点的值很小,有一个很长的尾部,尾部数据点的值很大。但是对这些值取对数的话,数据看起来是正态分布的,此时就需要xscale了
有这几种缩放方法:
[‘linear’ | ‘log’ | ‘logit’ | ‘symlog’]
log是log10 只允许正值
linear是线性平时默认的那种
logit是0, 1
symlog是对称对数,并允许正值和负值,允许在曲线内设置一个范围在零附近线性而不用对数

plt.grid(True)
图表带网格

plt.xscale
plt.xscale log和symlog的区别
plt.xlim
plt.subplot
plt.figure

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355

推荐阅读更多精彩内容