绘图和可视化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39532362/article/details/86895248

matplotlib入门

主要由Figure及AxesSubplot对象处理可视化

plt.figure()方法

import matplotlib.pyplot as plt 
import numpy as np 
from numpy.random import randn

# 创建图像及子图
fig=plt.figure()
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)

# 绘制子图
plt.plot(randn(50).cumsum(),'k--') #默认在最后创建的子图上绘制,没有则自动创建
_=ax1.hist(randn(100),bins=20,color='k',alpha=0.3) #返回元组表示值列表,标记列表,数据类型
ax2.scatter(np.arange(30),np.arange(30)+3*randn(30)) #返回数据类型

plt.show()

plt.subplots()方法

fig,axes=plt.subplots(2,3,sharex=True,sharey=True)
axes[0,0].plot(randn(50).cumsum(),'k--')
plt.subplots_adjust(wspace=0,hspace=0) #还有left,right,bottom,top

plt.show()

pyplot.subplot的选项

参数 说明
nrows subplot的行数
ncols subplot的列数
sharex 所用subplot应该使用相同的x轴刻度(调整xlim影响所有subplot)
sharey 所用subplot应该使用相同的y轴刻度(调整xlim影响所有subplot)
subplot_kw 用于创建个subplot的关键字字典
**fig_kw 创建figure的其他关键字

颜色,标记和线型

data=randn(50).cumsum()
plt.plot(data,'ko--')
plt.plot(data,color='k',linestyle='dashed',marker='o') #RGB形式color'#CECECE';'dashed'等价于'--'

# 插值方式
plt.plot(data,'k--',label='Default') #默认是线性
plt.plot(data,'k-',drawstyle='steps-post',label='steps=post')
plt.legend(loc='best') #把label显示出来
plt.show()

刻度,标签和图例

fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum())
ax.set_xticks([0,250,500,750,1000]) #设置x轴标记点
ax.set_xticklabels(['one','two','three','four','five'],rotation=30,fontsize='small') #设置x轴标记名称
ax.set_title('matplotlib plot') #设置图标名称
ax.set_xlabel('Stages') #设置x轴名称

# 添加图例
ax.plot(randn(1000).cumsum(),'k.',label='two')
ax.legend(loc='best') #显示图例,也可以用plt.legend()

# 放大到指定区域
ax.set_xlim([100,200])
ax.set_ylim([-1,1])

plt.show()

注解以及在subplot上绘图

  • 可以通过text,arrow,annotate函数进行添加注解
ax.text(x,y,'hello',family='monospace',fontsize=10)

ax.annotate(text,
xy=(),
xytext=(),
arrowprops=dict(facecolor='black'),
horizontalalignment='left',#水平对齐
verticalalignment='top') #垂直对齐
  • add_path函数进行绘图
fig=plt.figure()
ax=fig.add_subplot(1,1,1)

rect=plt.Rectangle('位置'=(x,y),'长','宽',color='k',alpha=0.3)
circ=plt.Circle('位置'=(x,y),'半径',color='b',alpha=0.3)
pgon=plt.Polygon('三点位置'=[(),(),()],color='g',alpha=0.5)

ax.add_patch(rect)
ax.add_patch(circ)
ax.add_patch(pgon)

plt.show()

保存图片

plt.savefig('aa.png',dpi=400,bbox_inches='tight')

Figure.savefig的选项

参数 说明
fname 文件名
dpi 分辨率,默认100
facecolor,edgecolor 图像背景颜色,默认‘w’
format 文件格式,如‘png’
bbox_inches 设置为‘tight’时,尽量裁剪周围空白

matplotlib配置

  • 查看配置选项路径:Python\Python36-32\Lib\site-packages\matplotlib\mpl-data\matplotlibrc
font_options={'family':'monospace',
'weight':'bold',
'size':'small'}
plt.rc('font',**font_options)

pandas中的绘图函数

Series.plot方法的参数

参数 说明
label 用于图例的标签
ax 指定要绘制subplot对象,没有设定使用当前或新建
style 风格,如‘ko–’
alpha 不透明度
kind 可以试试’line’,‘bar’-水平柱状,‘barh’-垂直柱状,‘kde’-密度图,‘hist’-直方图
logy 在y轴上使用的对数标尺
use_index 将对象的索引用作刻度标签
rot 旋转刻度标签0-360
xticks 用作x轴的刻度值列表
yticks 用作y轴的刻度值列表
xlim x轴的界限
ylim y轴的界限
grid 显示轴网络格

DataFrame.plot方法的参数

参数 说明
subplots 将各列绘制到单独的subplot
sharex 用同一个x轴,包括刻度和界限
sharey 用同一个y轴,包括刻度和界限
figsize 表示图像大小的元组
title 图像标题
legend 添加一个subplot图例,默认为True
sort_columns 以字母顺序绘制各列,默认使用当前顺序
stacked 堆叠柱状图
#直方图
ser=hist(bin=50,normed=True)

#散布图
plt.scatter(ser1,ser2)

#散布图矩阵
pd.scatter_matrix(df,digonal='kde',color='k',alpha=0.3)

其他图形化工具

  • Chaco
  • mayavi
  • 其他(PyQwt,Veusz,gnuplot-py,biggles等)

猜你喜欢

转载自blog.csdn.net/weixin_39532362/article/details/86895248