Python中的Matplotlib绘图

Matplotlib是Python的绘图工具,用Matplotlib可以绘制出我们想要的各类2D图。Matplotlib可用于python脚本、jupyter notebook、web等。个人认为在Jupyter Notebook中,Matplotlib表现非常棒哈哈!!

这篇随笔记录下关于最近学习Python数据分析绘图的知识点。(并非全面细致,仅供参考)

1.Matplotlib的基础构成

1.1figure

就像我们生活当中画画一样,画图需要我们提供一个画板,添加各种元素,figure则是充当这么一个角色(对象)。

import matplotlib.pyplot as plt
fig = plt.figure()

1.2axes

Matplotlib是一个2D绘图库,我们类似于数学将这个画板分成x和y这两个坐标轴。使用axes设置x和y轴。

1 fig = plt.figure()
2 ax = fig.add_subplot(221)
3 ax.set(xlim=[0,4], ylim=[0, 10], title='An Axes',ylabel='Y', xlabel='X')
4 plt.show()

运行结果如下图所示:

1.3xlim和ylim方法

xlim和ylim方法从字面意思也可以理解,就是给这个图设置了坐标轴范围。

plt.plot(x**3,y)
plt.xlim(0,2)
plt.ylim(0,7)
plt.show()

运行结果如下图:

1.4坐标轴标签

坐标轴标签的方法有xlabel和ylabel,其中的color代表颜色,fontsize代表字体大小,rotation表示旋转角度。

1.5标题

plt.title()方法,方法同坐标轴标签,附加:loc=‘left/right/center’,表示标题位于左右中的哪个位置。

结合坐标轴标签和标题,举一个例子:

import matplotlib.pyplot as plt
axes = plt.subplot(111)
axes.plot(x,y)
axes.set_ylabel('Y',fontsize=20,color='red',rotation=90)
axes.set_xlabel('X',fontdict={
    'fontsize':20,
    'color':'blue'
})
plt.title('X&Y',color='green',fontsize=20)
plt.show()

运行结果如下:

基础的画图方法大概就是这些,其实中间还有一些小细节,可以自行去网上或者相关书籍查阅。

2.基本的2D图

2.1散点图

顾名思义,散点图只有点没有线,这里可以借助random和numpy来绘图。

x = np.arange(10)
y = np.random.randn(10)
plt.scatter(x, y, color='blue', marker='*')
plt.show()

运行结果如下图:

2.2柱状图

柱状图有垂直的和水平的这两种。代码图形如下:

np.random.seed(1)
x = np.arange(10)
y = np.random.randn(10)
fig, axes = plt.subplots(ncols=2, figsize=plt.figaspect(1./2))
vert_bars = axes[0].bar(x, y, color='lightblue', align='center')
horiz_bars = axes[1].barh(x, y, color='lightblue', align='center')
axes[0].axhline(0, color='red', linewidth=2.5)
axes[1].axvline(0, color='blue', linewidth=2.5)
plt.show()

2.3饼形图

饼形图一般是根据各个label的百分比画饼。各个标签的百分比之和为100%。对于这部分我个人理解的还是少,也只是根据书上和网上大概知道一些成形的代码,如需细究,还请网上查找hh!

labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice (i.e. 'Hogs')

fig1, (ax1, ax2) = plt.subplots(2)
ax1.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True)
ax1.axis('equal')
ax2.pie(sizes, autopct='%1.2f%%', shadow=True, startangle=90, explode=explode,
    pctdistance=1.12)
ax2.axis('equal')
ax2.legend(labels=labels, loc='upper right')

plt.show()

其实还有一些图表,例如泡泡图,箱型图,轮廓图,包括3D图等等,都可以用Matplotlib绘画出来,这就是鄙人的知识盲区了,若您想了解其他相关知识,烦请参考其他博客,小白的我,实在不会什么,告辞!

来源:https://www.icode9.com/content-1-749801.html

(0)

相关推荐