python数据可视化

内容主要介绍了python模块matplotlib即seaborn数据可视化

matplotlib模块通过import matplotlib.pyplot as plt生成图形,如生成图形没展示,可调用plt.show()方法展示图形;

对于颜色属性设置,既可以使用十六进制颜色表达(#7777aa'),也可以使用颜色名称,比如绿色:green,红色:red,黄色:yellow

图形中如果涉及中文及数字中的负号,需要设置rcParams属性

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 如果有中文设置字体格式为微软雅黑
plt.rcParams['axes.unicode_minus'] = False   # 坐标轴如果有负数,通过该参数设置

一、饼图

主要应用于离散变量,展示各个成分结构占比

1. matplotlib绘制

matplotlib绘制饼图默认如果是椭圆形,如展示位正圆形,可通过pyplot模块中的axes设置为正圆形:plt.axes(aspect='equal)

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)

参数说明:

  • x:指定绘图的数据
  • explode:指定饼图某些部分的突出显示,即呈现爆炸式
  • labels:为饼图添加标签说明,类似于图例说明
  • colors:指定饼图的填充色,以可迭代对象传入,比如两种类型:colors=['#999ff','#7777aa']
  • autopct:自动添加百分比显示,可以采用格式化的方法显示,比如保留一位小数:autopct='%.1f%%'
  • pctdistance:设置百分比标签与圆心的距离
  • shadow:是否添加饼图的阴影效果
  • labeldistance:设置各扇形标签(图例)与圆心的距离
  • startangle:设置饼图的初始摆放角度
  • radius:设置饼图的半径大小
  • counterclock:是否让饼图按逆时针顺序呈现
  • wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等
  • textprops:设置饼图中文本的属性,如字体大小、颜色等
  • center:指定饼图的中心点位置,默认为原点
  • frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置

样例:

import matplotlib.pyplot as plt

plt.title('渠道销售占比')
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']  # 如果有中文设置字体格式为微软雅黑
plt.pie(x=[10,20,30],labels=['渠道一','渠道二','渠道三'],colors=['green','red','yellow'],autopct='%.1f%%')

绘制图如下:
python数据可视化_第1张图片

2. pandas绘制

pandas模块可以绘制常见图形,诸如:折线图、条形图、直方图、箱线图、核密度图等;
可以通过kind参数设置图形类型,比如饼图(pie):kind='pie'

Series.plot(kind='line', ax=None, figsize=None, use_index=True, title=None,
         grid=None, legend=False, style=None, logx=False, logy=False,
         loglog=False, xticks=None, yticks=None, xlim=None, ylim=None,
         rot=None, fontsize=None, colormap=None, table=False, yerr=None,
         xerr=None, label=None, secondary_y=False, **kwds)

参数说明:

  • kind:指定一个字符串值,用于绘制图形的类型,默认为折线图line。还可以绘制垂直条形图bar、水平条形图hbar、直方图hist、箱线图box、核密度图kde、面积图area和饼图pie

  • ax:控制当前子图在组图中的位置例如,在一个2×2的图形矩阵中,通过该参数控制当前图形在矩阵中的位置

  • figsize:控制图形的宽度和高度,以元组形式传递,即(width,hright)

  • use_index:bool类型的参数,是否将序列的行索引用作x轴的刻度,默认为True

  • title:用以添加图形的标题

  • grid:bool类型的参数,是否给图形添加网格线,默认为False

  • legend:bool类型的参数,是否添加子图的图例,默认为False

  • style:如果kind为line,该参数可以控制折线图的线条类型

  • logx:bool类型的参数,是否对x轴做对数变换,默认为False

  • logy:bool类型的参数,是否对y轴做对数变换,默认为False

  • loglog:bool类型的参数,是否同时对x轴和y轴做对数变换,默认为False

  • xticks:用于设置x轴的刻度值

  • yticks:用于设置y轴的刻度值

  • xlim:以元组或列表的形式,设置x轴的取值范围,如(0,3)表示x轴落在0~3的范围之内

  • ylim:以元组或列表的形式,设置y轴的取值范围

  • rot:接受一个整数值,用于旋转刻度值的角度

  • fontsize:接受一个整数,用于控制x轴与y轴刻度值的字体大小

  • colormap:接受一个表示颜色含义的字符串,或者Python的色彩映射对象,该参数用于设置图形的区域颜色

  • table:该参数如果为True,表示在绘制图形的基础上再添加数据表;如果传递的是序列或数据框,则根据数据添加数据表

  • yerr:如果kind为bar或hbar,该参数表示在条形图的基础上添加误差棒

  • xerr:含义同yerr参数

  • label:用于添加图形的标签

  • secondary_y:bool类型的参数,是否添加第二个y轴,默认为False

  • **kwds:关键字参数,该参数可以根据不同的kind值,为图形添加更多的修饰性参数(依赖于pyplot中的绘图函数)

样例:

df = pd.DataFrame([['渠道一',10],['渠道二',20],['渠道三',30]],columns=['渠道','销售额'])
df['销售额'].plot(kind='pie',labels=df['渠道'],title='各渠道销售占比',autopct='%.1f%%')

python数据可视化_第2张图片

二、条形图

同饼图一样,适用于分类型数据

1. matplotlib绘制

1.1 竖向条形图

bar(left, height, width=0.8, bottom=None, color=None, edgecolor=None,
    linewidth=None, tick_label=None, xerr=None, yerr=None,
    label = None, ecolor=None, align, log=False, **kwargs)

其中barh表示横向条形图

参数说明:

  • x:传递数值序列,指定条形图中x轴上的刻度值
  • height:传递数值序列,指定条形图y轴上的高度
  • width:指定条形图的宽度,默认为0.8
  • bottom:用于绘制堆叠条形图
  • color:指定条形图的填充色
  • edgecolor:指定条形图的边框色
  • linewidth:指定条形图边框的宽度,如果指定为0,表示不绘制边框
  • tick_label:指定条形图的刻度标签
  • xerr:如果参数不为None,表示在条形图的基础上添加误差棒
  • yerr:参数含义同xerr
  • label:指定条形图的标签,一般用以添加图例
  • ecolor:指定条形图误差棒的颜色
  • align:指定x轴刻度标签的对齐方式,默认为center,表示刻度标签居中对齐,如果设置为edge,则表示在每个条形的左下角呈现刻度标签
  • log:bool类型参数,是否对坐标轴进行log变换,默认为False
  • **kwargs:关键字参数,用于对条形图进行其他设置,如透明度等

样例:

df = pd.DataFrame([['渠道一',10],['渠道二',20],['渠道三',30]],columns=['渠道','销售额'])
plt.ylabel('销售额')
plt.style.use('seaborn-paper')   # 绘图风格,具体style值,可通过plt.style.available属性查看,有的值可能用不了
plt.title('各渠道销售情况')
plt.bar(x=range(df.shape[0]),height=df['销售额'],tick_label=df['渠道'])
for x,y in enumerate(df['销售额']):    
    plt.text(x,y+0.2,str(y),ha='center')   # 添加y轴标签

python数据可视化_第3张图片

1.2 横向条形图:

df = pd.DataFrame([['渠道一',10],['渠道二',20],['渠道三',30]],columns=['渠道','销售额'])
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.ylabel('销售额')
plt.style.use('seaborn-paper')   # 绘图风格,具体style值,可通过plt.style.available属性查看
plt.title('各渠道销售情况')
plt.barh(y=range(df.shape[0]),width=df['销售额'],tick_label=df['渠道'])
for x,y in enumerate(df['销售额']):    
    plt.text(y+1,x,str(y),ha='center')   # 添加y轴标签
plt.show()

python数据可视化_第4张图片

1.3 堆积条形图

相较以上单维度条形图,还可以在同一条形里绘制不同维度对比,同一柱子不同类别设置不同bottom参数即可

df = pd.DataFrame([['深圳',10,20],['北京',35,30],['广州',30,40]],columns=['地区','A部门销售额','B部门销售额'])
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 绘制A部门销售
plt.bar(x=range(df.shape[0]),tick_label=df['地区'],height=df['A部门销售额'],color='green')
# 绘制B部门销售
plt.bar(x=range(df.shape[0]),tick_label=df['地区'],height=df['B部门销售额'],color='red',bottom=df['A部门销售额'])

# 如果有第三个部门,bottom=df['A部门销售额'] + df['C部门销售额']
# 显示y轴标签
plt.ylabel('销售额')
# 添加图图形标题
plt.title('各地区销售情况')
# 显示图例
plt.legend(['A部门销售额','B部门销售额'])
plt.show()

python数据可视化_第5张图片

1.4 水平交错条形图

这块在绘制其他图形时,只需要将x轴的位置往右平移width宽度就好
样例:

df = pd.DataFrame([['深圳',10,20],['北京',35,30],['广州',30,40]],columns=['地区','A部门销售额','B部门销售额'])
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
# 绘制A部门销售
plt.bar(x=range(df.shape[0]),tick_label=df['地区'],height=df['A部门销售额'],color='green',width=0.2)
# 绘制B部门销售
plt.bar(x=[x+0.2 for x in range(df.shape[0])],tick_label=df['地区'],height=df['B部门销售额'],color='red',width=0.2)
plt.ylabel('销售额')
# 添加图图形标题
plt.title('各地区销售情况')
# 显示图例
plt.legend(['A部门销售额','B部门销售额'])
# 添加x轴标签,width=0.2,这里设置+0.1两根柱子居中
plt.xticks([x+0.1 for x in range(df.shape[0])],df['地区'])
plt.show()

效果如下:
python数据可视化_第6张图片

如果添加刻度标签,通过plt.text参数设置即可,同上;

2. pandas绘制

2.1 竖形条形图

样例:

df = pd.DataFrame([['渠道一',10],['渠道二',20],['渠道三',30]],columns=['渠道','销售额'])
df['销售额'].plot(kind='bar',width=0.2,title='销售额',color='green')
plt.ylabel('销售额')
plt.title('各渠道销售情况')
plt.xticks(range(df.shape[0]),df['渠道'])
for x,y in enumerate(df['销售额']):    
    plt.text(x,y+0.4,str(y),ha='center')   # 添加y轴标签

python数据可视化_第7张图片

2.2 水平交叉条形图

df = pd.DataFrame([['深圳',10,20],['北京',35,30],['广州',30,40]],columns=['地区','A部门销售额','B部门销售额'])
df.plot(x='地区',
        y=['A部门销售额','B部门销售额'],
        kind='bar',
        color=['green','red'],
        width=0.4,
        title='各地区销售额')
plt.ylabel('销售额')
plt.xlabel('')
plt.show()

python数据可视化_第8张图片

3. seaborn绘制

import seaborn as sns

sns.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,
          ci=95, n_boot=1000, orient=None, color=None, palette=None,
          saturation=0.75, errcolor='.26', errwidth=None, dodge=True, ax=None, **kwargs)

参数说明

  • x:指定条形图的x轴数据
  • y:指定条形图的y轴数据
  • hue:指定用于分组的另一个离散变量
  • data:指定用于绘图的数据集
  • order:传递一个字符串列表,用于分类变量的排序
  • hur_order:传递一个字符串列表,用于分类变量hue值的排序
  • ci:用于绘制条形图的误差棒(置信区间)
  • n_boot:当指定ci参数时,可以通过n_boot参数控制自助抽样的迭代次数
  • orient:指定水平或垂直条形图
  • color:指定所有条形图所属的一种填充色
  • palette:指定hue变量中各水平的颜色
  • saturation:指定颜色的透明度
  • errcolor:指定误差棒的颜色
  • errwidth:指定误差棒的线宽
  • capsize:指定误差棒两端线条的长度
  • dodge:bool类型参数,当使用hue参数时,是否绘制水平交错条形图,默认为True
  • ax:用于控制子图的位置
  • **kwagrs:关键字参数,可以调用plt.bar函数中的其他参数

样例:

df = pd.DataFrame([['渠道一',10],['渠道二',20],['渠道三',30]],columns=['渠道','销售额'])
sns.barplot(y='渠道',x='销售额',data=df,color='steelblue',orient='horizontal')
plt.xlabel('销售额')
plt.ylabel('')
plt.title('各渠道销售')
for y,x in enumerate(df['销售额']):
    plt.text(x,y,str(x),va='center')
plt.show()

python数据可视化_第9张图片

三、直方图

主要应用于连续型变量,查看变量分布情况

1. matplotlib绘制

plt.hist(x, bins=10, range=None, normed=False,
       weights=None, cumulative=False, bottom=None,
       histtype='bar', align='mid', orientation='vertical',
       rwidth=None, log=False, color=None,
       label=None, stacked=False)

参数说明:

  • x:指定条形图的x轴数据
  • y:指定条形图的y轴数据
  • hue:指定用于分组的另一个离散变量
  • data:指定用于绘图的数据集
  • order:传递一个字符串列表,用于分类变量的排序
  • hur_order:传递一个字符串列表,用于分类变量hue值的排序
  • ci:用于绘制条形图的误差棒(置信区间)
  • n_boot:当指定ci参数时,可以通过n_boot参数控制自助抽样的迭代次数
  • orient:指定水平或垂直条形图
  • color:指定所有条形图所属的一种填充色
  • palette:指定hue变量中各水平的颜色
  • saturation:指定颜色的透明度
  • errcolor:指定误差棒的颜色
  • errwidth:指定误差棒的线宽
  • capsize:指定误差棒两端线条的长度
  • dodge:bool类型参数,当使用hue参数时,是否绘制水平交错条形图,默认为True
  • ax:用于控制子图的位置
  • **kwagrs:关键字参数,可以调用plt.bar函数中的其他参数

2. seaborn绘制

sns.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:指定绘图数据,可以是序列、一维数组或列表
  • bins:指定直方图条形的个数
  • hist:bool类型的参数,是否绘制直方图,默认为True
  • kde:bool类型的参数,是否绘制核密度图,默认为True
  • rug:bool类型的参数,是否绘制须图(如果数据比较密集,该参数比较有用),默认为False
  • fit:指定一个随机分布对象(需调用scipy模块中的随机分布函数),用于绘制随机分布的概率密度曲线
  • hist_kws:以字典形式传递直方图的其他修饰属性,如填充色、边框色、宽度等
  • kde_kws:以字典形式传递核密度图的其他修饰属性,如线的颜色、线的类型等
  • rug_kws:以字典形式传递须图的其他修饰属性,如线的颜色、线的宽度等
  • fit_kws:以字典形式传递概率密度曲线的其他修饰属性,如线条颜色、形状、宽度等
  • color:指定图形的颜色,除了随机分布曲线的颜色
  • vertical:bool类型的参数,是否将图形垂直显示,默认为True
  • norm_hist:bool类型的参数,是否将频数更改为频率,默认为False
  • axlabel:用于显示轴标签
  • a:指定绘图数据,可以是序列、一维数组或列表
  • bins:指定直方图条形的个数
  • hist:bool类型的参数,是否绘制直方图,默认为True
  • kde:bool类型的参数,是否绘制核密度图,默认为True
  • rug:bool类型的参数,是否绘制须图(如果数据比较密集,该参数比较有用),默认为False
  • fit:指定一个随机分布对象(需调用scipy模块中的随机分布函数),用于绘制随机分布的概率密度曲线
  • hist_kws:以字典形式传递直方图的其他修饰属性,如填充色、边框色、宽度等
  • kde_kws:以字典形式传递核密度图的其他修饰属性,如线的颜色、线的类型等
  • rug_kws:以字典形式传递须图的其他修饰属性,如线的颜色、线的宽度等
  • fit_kws:以字典形式传递概率密度曲线的其他修饰属性,如线条颜色、形状、宽度等
  • color:指定图形的颜色,除了随机分布曲线的颜色
  • vertical:bool类型的参数,是否将图形垂直显示,默认为True
  • norm_hist:bool类型的参数,是否将频数更改为频率,默认为False
  • axlabel:用于显示轴标签
  • label:指定图形的图例,需结合plt.legend()一起使用。
  • ax:指定子图的位置。

三、箱线图

主要用于查看连续型变量离散情况,比如找出离异值

1. matplotlib绘制

plt.boxplot(x, notch=None, sym=None, vert=None,
           whis=None, positions=None, widths=None,
           patch_artist=None, meanline=None, showmeans=None,
           showcaps=None, showbox=None, showfliers=None,
           boxprops=None, labels=None, flierprops=None,
           medianprops=None, meanprops=None,
           capprops=None, whiskerprops=None)

参数说明:

  • x:指定要绘制箱线图的数据
  • notch:是否以凹口的形式展现箱线图,默认非凹口
  • sym:指定异常点的形状,默认为+号显示
  • vert:是否需要将箱线图垂直摆放,默认垂直摆放
  • whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差
  • positions:指定箱线图的位置,默认为[0,1,2…]
  • widths:指定箱线图的宽度,默认为0.5
  • patch_artist:bool类型参数,是否填充箱体的颜色;默认为False
  • meanline:bool类型参数,是否用线的形式表示均值,默认为False
  • showmeans:bool类型参数,是否显示均值,默认为False
  • showcaps:bool类型参数,是否显示箱线图顶端和末端的两条线(即上下须),默认为True
  • showbox:bool类型参数,是否显示箱线图的箱体,默认为True
  • showfliers:是否显示异常值,默认为True
  • boxprops:设置箱体的属性,如边框色,填充色等
  • labels:为箱线图添加标签,类似于图例的作用
  • filerprops:设置异常值的属性,如异常点的形状、大小、填充色等
  • medianprops:设置中位数的属性,如线的类型、粗细等。
  • meanprops:设置均值的属性,如点的大小、颜色等。
  • capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等。
  • whiskerprops:设置须的属性,如颜色、粗细、线的类型等。

2. seaborn绘制

 sns.boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,
         orient=None, color=None, palette=None, saturation=0.75, width=0.8,
         dodge=True, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)

参数说明:

  • x:指定箱线图的x轴数据
  • y:指定箱线图的y轴数据
  • hue:指定分组变量
  • data:指定用于绘图的数据集
  • order:传递一个字符串列表,用于分类变量的排序
  • hue_order:传递一个字符串列表,用于分类变量hue值的排序
  • orient:指定箱线图的呈现方向,默认为垂直方向
  • color:指定所有箱线图的填充色
  • palette:指定hue变量的区分色
  • saturation:指定颜色的透明度
  • width:指定箱线图的宽度
  • dodge:bool类型的参数,当使用hue参数时,是否绘制水平交错的箱线图,默认为True
  • fliersize:指定异常值点的大小
  • linewidth:指定箱体边框的宽度
  • whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差
  • notch:bool类型的参数,是否绘制凹口箱线图,默认为False
  • ax:指定子图的位置
  • **kwargs:关键字参数,可以调用plt.boxplot函数中的其他参数

四、小提琴图

1. seaborn绘制

sns.violinplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,
          bw='scott', cut=2, scale='area', scale_hue=True, gridsize=100,
          width=0.8, inner='box', split=False, dodge=True, orient=None,
          linewidth=None, color=None, palette=None, saturation=0.75, ax=None)

相关参数:

  • x:指定小提琴图的x轴数据
  • y:指定小提琴图的y轴数据
  • hue:指定一个分组变量
  • data:指定绘制小提琴图的数据集
  • order:传递一个字符串列表,用于分类变量的排序
  • hue_order:传递一个字符串列表,用于分类变量hue值的排序
  • bw:指定核密度估计的带宽,带宽越大,密度曲线越光滑
  • scale:用于调整小提琴图左右的宽度,如果为area,则表示每个小提琴图左右部分拥有相同的面积;如果为count,则表示根据样本数量来调节宽度;如果为width,则表示每个小提琴图左右两部分拥有相同的宽度
  • scale_hue:bool类型参数,当使用hue参数时,是否对hue变量的每个水平做标准化处理,默认为True
  • width:使用hue参数时,用于控制小提琴图的宽度
  • inner:指定小提琴图内部数据点的形态,如果为box,则表示绘制微型的箱线图;如果为quartiles,则表示绘制四分位的分布图;如果为point或stick,则表示绘制点或小竖条
  • split:bool类型参数,使用hue参数时,将小提琴图从中间分为两个不同的部分,默认为False
  • x:指定小提琴图的x轴数据
  • y:指定小提琴图的y轴数据
  • hue:指定一个分组变量
  • data:指定绘制小提琴图的数据集
  • order:传递一个字符串列表,用于分类变量的排序
  • hue_order:传递一个字符串列表,用于分类变量hue值的排序
  • bw:指定核密度估计的带宽,带宽越大,密度曲线越光滑
  • scale:用于调整小提琴图左右的宽度,如果为area,则表示每个小提琴图左右部分拥有相同的面积;如果为count,则表示根据样本数量来调节宽度;如果为width,则表示每个小提琴图左右两部分拥有相同的宽度
  • scale_hue:bool类型参数,当使用hue参数时,是否对hue变量的每个水平做标准化处理,默认为True
  • width:使用hue参数时,用于控制小提琴图的宽度
  • inner:指定小提琴图内部数据点的形态,如果为box,则表示绘制微型的箱线图;如果为quartiles,则表示绘制四分位的分布图;如果为point或stick,则表示绘制点或小竖条
  • split:bool类型参数,使用hue参数时,将小提琴图从中间分为两个不同的部分,默认为False

五、折线图

一般用于反应连续型变量趋势

1. matplotlib绘制

plt.plot(x, y, linestyle, linewidth, color, marker,
      markersize, markeredgecolor, markerfactcolor,
      markeredgewidth, label, alpha)

参数说明:

  • x:指定折线图的x轴数据
  • y:指定折线图的y轴数据
  • linestyle:指定折线的类型,可以是实线、虚线、点虚线、点点线等,默认为实线
  • linewidth:指定折线的宽度
  • marker:可以为折线图添加点,该参数是设置点的形状
  • markersize:设置点的大小
  • markeredgecolor:设置点的边框色
  • markerfactcolor:设置点的填充色
  • markeredgewidth:设置点的边框宽度
  • label:为折线图添加标签,类似于图例的作用

线的类型(参数:linestyle):
线的类型
点的类型(参数:marker):
python数据可视化_第10张图片

六、散点图

主要用于研究两个变量的相关关系,比如线性回归,可以先通过绘制散点图看两个变量相关情况

1. matplotlib绘制

scatter(x, y, s=20, c=None, marker='o', cmap=None, norm=None, vmin=None,
      vmax=None, alpha=None, linewidths=None, edgecolors=None)

参数说明:

  • x:指定散点图的x轴数据
  • y:指定散点图的y轴数据
  • s:指定散点图点的大小,默认为20,通过传入其他数值型变量,可以实现气泡图的绘制
  • c:指定散点图点的颜色,默认为蓝色,也可以传递其他数值型变量,通过cmap参数的色阶表示数值大小
  • marker:指定散点图点的形状,默认为空心圆
  • cmap:指定某个Colormap值,只有当c参数是一个浮点型数组时才有效
  • norm:设置数据亮度,标准化到0~1,使用该参数仍需要参数c为浮点型的数组
  • vmin、vmax:亮度设置,与norm类似,如果使用norm参数,则该参数无效
  • alpha:设置散点的透明度
  • linewidths:设置散点边界线的宽度
  • edgecolors:设置散点边界线的颜色

2. pandas绘制

df.plot(kind='scatter',x='x变量的column名称',y='y的column名称',title='标题')
plt.xlabel('x轴标签')
plt.ylabel('y轴标签')
plt.show()   # 图展示

3. seaborn绘制

lmplot(x, y, data, hue=None, col=None, row=None, palette=None, col_wrap=None,
        size=5, aspect=1, markers='o', sharex=True, sharey=True, hue_order=None,
        col_order=None, row_order=None, legend=True, legend_out=True, scatter=True,
        fit_reg=True, ci=95, n_boot=1000, order=1, logistic=False, lowess=False,
        robust=False, logx=False, x_partial=None, y_partial=None, truncate=False,
 x_jitter=None, y_jitter=None, scatter_kws=None, line_kws=None)

参数说明:

  • x,y:指定x轴和y轴的数据
  • data:指定绘图的数据集
  • hue:指定分组变量
  • col,row:用于绘制分面图形,指定分面图形的列向与行向变量
  • palette:为hue参数指定的分组变量设置颜色
  • col_wrap:设置分面图形中每行子图的数量
  • size:用于设置每个分面图形的高度
  • aspect:用于设置每个分面图形的宽度,宽度等于size*aspect
  • markers:设置点的形状,用于区分hue参数指定的变量水平值
  • sharex,sharey:bool类型参数,设置绘制分面图形时是否共享x轴和y轴,默认为True
  • hue_order,col_order,row_order:为hue参数、col参数和row参数指定的分组变量设值水平值顺序
  • legend:bool类型参数,是否显示图例,默认为True
  • legend_out:bool类型参数,是否将图例放置在图框外,默认为True
  • scatter:bool类型参数,是否绘制散点图,默认为True
  • fit_reg:bool类型参数,是否拟合线性回归,默认为True
  • ci:绘制拟合线的置信区间,默认为95%的置信区间
  • n_boot:为了估计置信区间,指定自助重抽样的次数,默认为1000次
  • order:指定多项式回归,默认指数为1
  • logistic:bool类型参数,是否拟合逻辑回归,默认为False
  • lowess:bool类型参数,是否拟合局部多项式回归,默认为False
  • robust:bool类型参数,是否拟合鲁棒回归,默认为False
  • logx:bool类型参数,是否对x轴做对数变换,默认为False
  • x_partial,y_partial:为x轴数据和y轴数据指定控制变量,即排除x_partial和y_partial变量的影响下绘制散点图
  • truncate:bool类型参数,是否根据实际数据的范围对拟合线做截断操作,默认为False
  • x_jitter,y_jitter:为x轴变量或y轴变量添加随机噪声,当x轴数据与y轴数据比较密集时,可以使用这两个参数
  • scatter_kws:设置点的其他属性,如点的填充色、边框色、大小等
  • line_kws:设置拟合线的其他属性,如线的形状、颜色、粗细等

核心参数:x,y,hue,data

七、气泡图

相比散点图展示二维数据关系,气泡图能展示更多的信息,比如可以通过气泡大小、颜色表示某个变量亦或维度

1. matplotlib绘制

python数据可视化_第11张图片

八、热力图

比如查看各个城市拥挤情况,可以实现类似excel中颜色条件格式的效果,比如展示各个分组数据,值比较大的用深度颜色标记

1. seaborn绘制

 heatmap(data, vmin=None, vmax=None, cmap=None, center=None, annot=None, fmt='.2g',
        annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws = None,
        square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None)

参数说明:

  • data:指定绘制热力图的数据集
  • vmin,vmax:用于指定图例中最小值与最大值的显示值
  • cmap:指定一个colormap对象,用于热力图的填充色
  • center:指定颜色中心值,通过该参数可以调整热力图的颜色深浅
  • annot:指定一个bool类型的值或与data参数形状一样的数组,如果为True,就在热力图的每个单元上显示数值
  • fmt:指定单元格中数据的显示格式
  • annot_kws:有关单元格中数值标签的其他属性描述,如颜色、大小等
  • linewidths:指定每个单元格的边框宽度
  • linecolor:指定每个单元格的边框颜色
  • cbar:bool类型参数,是否用颜色条作为图例,默认为True
  • square:bool类型参数,是否使热力图的每个单元格为正方形,默认为False
  • cbar_kws:有关颜色条的其他属性描述
  • xticklabels,yticklabels:指定热力图x轴和y轴的刻度标签,如果为True,则分别以数据框的变量名和行名称作为刻度标签
  • mask:用于突出显示某些数据
  • ax:用于指定子图的位置

九、 多个图形合并

类似于tkinter,python图形展示可以通过grid布局,函数级参数如下:

subplot2grid(shape, loc, rowspan=1, colspan=1, **kwargs)

参数说明:

  • shape:指定组合图的框架形状,以元组形式传递,如2×3的矩阵可以表示成(2,3)。
  • loc:指定子图所在的位置,如shape中第一行第一列可以表示成(0,0)。
  • rowspan:指定某个子图需要跨几行。
  • colspan:指定某个子图需要跨几列。

其中跨行和跨列参数,表示该子图横向亦或纵向跨几个格子

python数据可视化_第12张图片
上图,一个2x3=6个格子,左侧6个子图,右侧4个子图,有一个跨了两列,有一个跨了两行

十、绘图函数汇总

import matplotlib.pyplot as plt
import seaborn as sns

pandas则使用使用SeriesDataFrame调用plot函数即可

python数据可视化_第13张图片

声明:函数参数说明主要整理自《从零开始学python数据分析与挖掘》

该书偏向技术应用,详解了python数据处理,可视化以及机器学习,如果纯粹学习技术应用,该书值得推荐。

其他相关书籍:张杰-《Python数据可视化之美》

你可能感兴趣的:(Python,python,开发语言,数据可视化)