(3)Python数据分析-Matplotlib相关

本文是Matplotlib相关介绍,如果需要了解Numpy和Pandas的知识,可以看我写的另外两篇博客,如下:

(1)Python数据分析-Numpy相关

(2)Python数据分析-Pandas相关

注意程序末尾添加plt.show()

b - 蓝色 g - 绿色 r - 红色 y - 黄色 k - 黑色

绘图

plt.plot(x,y,'ro')  红色圆点
plt.plot(x1,y1,x2,y2,x3,y3) 一张图片同时画三条线
plt.plot(x,y,linewidth = 2)

相关设置:

plt.axis([0,5,0,10])  设置x、y轴坐标范围
plt.xlim(1,2) plt.ylim(1,2) 设置x、y轴坐标范围

plt.title('Title',fontsize=20,fontname='Times New Roman')   图片标题,字体新罗马,20号大小
plt.xlabel() 设置x轴标签
plt.ylabel() 设置y轴标签
plt.text(1,2,'text') 在坐标(1,2) 处放置文字
plt.text(1,2,r'$y = x^2$')  使用LaTeX公式
plt.grid(True)  显示网格
plt.legend(['one','two'])  在图片中加上曲线的标注

plt.xticks(pos_list, label_list) 设置X轴的刻度
plt.yticks(pos_list, label_list) 设置Y轴的刻度

plt.savefig('fig.png')  保存图片

绘制子图

plt.subplot(211)
plt.plot()
plt.subplot(212)
plt.plot()

利用Pandas绘制多条曲线

data = pd.DataFrame({'one':[1,2,3], 'two':[1,2,3],'three':[1,2,3]})
plt.plot(x,data)
plt.legend(data)

直方图

plt.hist(np_list, bins=20)  将np_list划分为20个小区域,每个区域对应直方图的一个矩形,该区域有多少数字则矩形高度为多少

条状图

ind = [0,1,2,3]
val = [5,3,4,7]
plt.bar(ind, val) 不连续,小矩形间有间隔,矩形高度由val指定
plt.barh(ind,val)  水平条状图

多序列条状图

ind
val_1,val_2,val_3
dx = 0.3

plt.bar(ind, val_1,width=dx)
plt.bar(ind+dx, val_2,width=dx)
plt.bar(ind+2*dx, val_3,width=dx)

DataFrame的多序列条状图

data = pd.DataFrame({'one':[1,2,3], 'two':[1,2,3],'three':[1,2,3]})
data.plot(kind='bar')   竖向条状图
data.plot(kind='barh')  横向条状图

饼图绘制

vals = [15,35,20,30]
label = ['one','two','three','four']
color = ['yello', 'red', 'green', 'blue']
plt.pie(vals, labels=label, colors=color)

explode = [0,0.3,0,0]  是否抽取,0是不抽取,1是完全抽取
plt.pie(vals, labels=label, colors=color,explode=explode)

DataFrame的饼图

data = pd.DataFrame({'one':[1,2,3], 'two':[1,2,3],'three':[1,2,3]})
data['one'].plot(kind='pie', figsize=(6,6))   饼图绘制

等高线图

x = np.arange(-2,2,0.01)
y = np.arange(-2,2,0.01)
X,Y = np.meshgrid(x,y)

plt.contour(X,Y,f(X,Y),8)  绘制轮廓线,将图片分为8个部分
plt.contourf(X,Y,f(X,Y),8)  在对应区域内填充颜色,图片共分为8个部分
plt.colorbar()  对每个颜色进行解释

3D图形绘制

from mpl_toolkits.mplot3d import Axes3D

(1)3D 曲面图

fig = plt.figure()
ax = Axes3D(fig)
x = np.arange(-2,2,0.01)
y = np.arange(-2,2,0.01)
X,Y = np.meshgrid(x,y)
ax.plot_surface(X,Y,f(X,Y))

(2)3D 散点图

fig = plt.figure()
ax = Axes3D(fig)

ax.scatter(x,y,z)
ax.scatter(x2,y2,z2)
ax.scatter(x3,y3,z3)

ax.set_label('X')
ax.set_label('Y')
ax.set_label('Z')
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值