python绘图可视化

本文是对《利用python进行数据分析》书中关于绘图可视化的一个回顾性总结笔记。

目录

matplotlib 

pandas自带的绘图(重点内置方法plot)

seaborn


 

matplotlib 

是什么
    matplotlib实际上是一种比较基本低级的工具。matplotlib是一个用于创建出版质量图表的桌面绘图包(主要是2D方面)。要绘制一张图表,你组装一些基本组件就行:数据展示(即图表类型:线型图、柱状图、盒形图、散布图、等值线图等)、图例、标题、刻度标签以及其他注解型信息。更多的其实只要知道有什么图和函数,实际在做的时候完全可以去看官网的api教程来配参数。
    官网案例教程:官网

引入约定

import matplotlib.pyplot as plt

Figure and Subplots
    matplotlib的图像都位于Figure对象中。
不能通过空Figure绘图。必须用add_subplot创建一个或多个subplot才行(子图):
 

fig = plt.figure()
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
#在一个”界面“中增加最多2*2=4个小子图,后面的1,2,3表示子图1,2,3
 ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3)#hist表示直方图,而ax.plot表示线型相关的图

 plt.subplots主要参数

python绘图可视化_第1张图片


    plt.subplots_adjust(了解即可)
        调整子图的间距。wspace和hspace用于控制宽度和高度的百分比,可以用作subplot之间的间距。

颜色标记和线型
    在plt.plot或者plt.hist或者由plt.figure.addd_subplot得到的子图中等,可以指定图形的颜色。此以plt.plot中为例
    参数: color,linestyle,marker
    例子

plt.plot(randn(30).cumsum(),'ko--') # 后面的'ko--'是颜色和标记类型、以及线型的缩写。 实际为color='k',marker='o',linestyle='dashed'即--,即等同如下 
plt.plot(randn(30).cumsum(),color='k',linestyle='dashed',marker='o') # 后面的颜色、线型、和标记类型可以缩写为'ko--'

 结果

python绘图可视化_第2张图片

          

刻度标签和图例
    对于plt.figure.subplot得到的对象ax里,主要参数:ax.set_xticks,ax.set_xticklabels,ax.set_title,ax.set_label,ax.legend
    例子
        # 对于以fig.add_subplot来画图的方式,图表的装饰项,含有诸如xlim ,xtricks和 xtricklabels之类的方法。它们分别控制图标的范围、刻度位置和刻度标签等。

fig =plt.figure();ax=fig.add_subplot(1,1,1)
ticks=ax.set_xticks([0,250,500,750,1000])#要改变x轴刻度,最简单的办法是使用set_xticks和set_xticklabels。前者告诉matplotlib要将刻度放在数据范围中的哪些位置,默认情况下,这些位置也就是刻度标签。
labels=ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small') #我们可以通过set_xticklabels将任何其他的值用作标签:
ax.set_title('myfirst matplotlib plot') # 设置标题
ax.set_xlabel('Stages') # x轴的总标签 。
# Y轴的修改方式与此类似,只需将上述代码中的x替换为y即可
ax.plot(randn(1000).cumsum(),label='one',color='green') # 里面的label 是图例1 
ax.plot(randn(1000).cumsum(),label='two',color='black') # 在图中添加第二条线
ax.legend(loc='best') # 图例放的位置,best参数是让其自己选择最佳位置
plt.show()

  结果

python绘图可视化_第3张图片
 
   对于在图中添加注释(了解即可):

对于为在图中注明对应的点添加注释,可以通过ax.annotate的方式去添加。由于需要在指定的点,其实添加比较复杂,需要传kv对去标示。

线型柱状图

plot.hist后者ax.hist

散布图
    含义
        散布图是观察两个一维数据序列之间的关系的有效手段。matplotlib的scatter方法是绘制散布图的主要方法。
    例子

print(trans_data[-5:])
# plt.scatter绘制散布图 
plt.scatter(trans_data['m1'],trans_data['unemp'])
plt.title('Changes in log %s vs. log %s '%('m1','unemp'))

输出

python绘图可视化_第4张图片
               

pandas自带的绘图(重点内置方法plot)


    pandas自身就有内置的方法,用于简化从DataFrame和Series绘制图形,都有一个用于生成各类图表的plot方法。默认情况下,它们所生成的是线型图.
注意在jupyter中需要记得引入import matplotlib.pyplot as plt,并在最后加入 plt.show()图像 才会显示,且可以通过plt控制图形的大小、颜色等


    series的plots方法完整参数
        其中kind 标示图形类型,默认是line线性图。bar是柱状图,barh是水平柱状图,kde是密度图。注(# 与直方图相关的另一类图标类型是密度图  ,它是通过计算 “可能会产生观测数据的连续概率分布的估计” 而产生的。一般的过程是将该分布近似为一组核(即诸如正态高斯分布之类的较为简单的分布)。因此密度图也被称为KDE(Kernel Density Estimate 核密度估计图))

python绘图可视化_第5张图片
        例子

import matplotlib.pyplot as plt
plt.rc('figure',figsize=(6,5)) 
#Series和DataFrame都有一个用于生成各类图表的plot方法。  
s=pd.Series(np.random.randn(10).cumsum(),index=np.arange(0,100,10))
s.plot()  
#该Series对象的索引会被传给matplotlib,并用以绘制X轴。可以通过use_index=False禁用该功能。X轴的刻度和界限可以通过xticks和xlim选项进行调节,Y轴就用yticks和ylim。

 输出

python绘图可视化_第6张图片
                    
 dataframe的plots方法参数
       参数: 

python绘图可视化_第7张图片  例子

df = DataFrame(np.random.rand(6, 4),
               index=['one', 'two', 'three', 'four', 'five', 'six'],
               columns=pd.Index(['A', 'B', 'C', 'D'], name='Genus'))
print(df)
df.plot(kind='bar')  # 注意,对于DataFrame,柱状图会将每一行的值分为一组。# 笔记:柱状图有一个非常不错的用法:利用value_counts图形化显示Series中各值的出现频率,比如s.value_counts().plot.bar()。
# DataFrame各列的名称'Genus'会被用作图例的标题
plt.show()

输出

python绘图可视化_第8张图片

df.plot.barh(stacked=True, alpha=0.5)

    输出

python绘图可视化_第9张图片
 

 

 

 

seaborn

seaborn
    可以画上面的很多图,也支持箱型图(又称盒图)sns.factorplot等。基本图形其实只要能画出来表达意思即可,并不需要局限于用的什么包
        python绘图可视化_第10张图片
    官网案例教程:https://seaborn.pydata.org/tutorial.html 

你可能感兴趣的:(特征工程与数据分析)