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.2axesMatplotlib是一个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./content-1-749801.html |
|