08 绘图及可视化

第八章、绘图及可视化

最佳学习资源:matplotlib的示例库和官方文档

import matplotlib.pyplot as plt

8.1 matplotlib入门

Figure和Subplot

matplotlib的图像都是位于figure对象中的。

# 创建一个figure
fig = plt.figure()
# 添加子图:在2*2的结构里的第1个位置
ax1 = fig.add_subplot(2,2,1)
# plt.plot默认在最后一个添加的图中绘制,以后可以ax1.plot也可以plt.plot
plt.plot(np.random.randn(50).cumsum(),'k--')
# 在定义好的子图ax中绘制
ax1.hist(np.random.randn(50),bins=10,color='k',alpha=0.3)
# 定义子图
fig,axes = plt.sub_plot(2,3)
# 索引定义的子图
axes2 = axes[0,1]
# 利用figure的subplots_adjust方法调整间距
# hspace和wspace为subplot的间距百分比
plt.subplots_adjust(wspace=0,hspace=0)

颜色、标记和线型

plot函数接受一个x,y(x可选),还有一个样式的缩写。

# 画普通的x与y的散点图,如果y为多维的,则每个都会画出
plot([x],y,[fmt])
# fmt = '[color][maker][line]'
# color:r红b蓝g绿y黄w白k黑
# marker:.点,像素o圆v倒三角^正三角
# line:-实线--短横线-.点横线:点线

刻度、标签和图例

# 改变轴的范围
plt.xlim([0,10])
# 改变刻度
ax.set_xticks([0,250,500,750,1000])
# 设置刻度标签
ax.set_xticklabels(['one','two','three','four','five'],rotation=30)
# 设置x标签的名称
ax.set_xlabel(u'??')
# 设置图片的名称
ax.set_title(u'??')
# 添加图例,label参数
ax.plot(randn(100).cumsum(),'k--',label='one')
# 图例的位置
ax.legend(loc='best')

注解以及再Subplot上绘图

text、arrow、annotate

# 在指定位置添加文字
ax.text(x,y,'??',family='?',fontsize=?)
# 添加注解。。。没整明白
ax.annotate(annotation_string,xy=(x,y),xytext=(x,y),arrowprops=dict(facecolor='black'),horizontalalignment='left',varticalalignment='top')

将图表保存到文件

# 文件名和像素,根据后缀推断文件类型
plt.savefig('xxx.jpg',dpi=??)

matplotlib 配置

可以对一些图片的格式进行全局配置。

plt.rc('??',??)
# 第一个问号可以是figure axes  xtick  ytick  grid  legent
# 第二个可以定义一个字典
font_options={'family':'monospace','weight':'bold','size':'small'}
plt.rc('font',**font_options)

8.2 pandas中的绘图函数

matplotlib是一种比较低级的绘图工具,还要自己手动编码名称、标签、图例等等。pandas有自带的。默认是线形图。

线形图

  • Series:对数据进行绘制,默认index为x轴
    obj.plot(ax=?,xlim=?,ylim=?,xticks=?,yticks=?,kind=?,use_index=?)

    • ax:subplot对象,可以植入
    • xlim ylim:范围
    • xticks yticks:标签
    • kind:类型
    • use_index:是否用index做x轴
  • DataFrame:对每一列数据都绘制一下,同Series

柱状图(bar)

  • kind=’bar’:垂直柱状图
  • kind=’barh’:水平柱状图
  • stacked=True:堆积柱状图

直方图和密度图

  • 直方图(kind=’hist’)

    可以对值频率进行离散化显示的柱状图。数据点被炒粉到离散的,间隔均匀的面元中,绘制的各面元中的数据点的数量。

  • 密度图(kind=’kde’)

    计算“可能会产生观测数据的连续概率分布的估计”而产生的。一半的过程是将该分布近似为一组核(高斯分布)。因此,密度图也成为kde。

散布图

观察两个一维数据之间的关系的有效手段。利用matplotlib里的scatter函数。

  • plt.scatter(x_series,y_series)
  • plt.scatter_matrix(df,diagonal=’kde’)

    diagonal指在对角线多添加一个kde的绘图。

8.3 绘制地图:图形化喜爱你是海底地震危机数据

8.4 python图形化工具生态系统

Chaco

mayavi

猜你喜欢

转载自blog.csdn.net/Double___You/article/details/80036706