目录
1 概述
2 模板
2.1 模板1---开始
2.2 模板2----基本绘图(2D)
2.2.1 线
2.2.2 散点图
2.2.3 条形图(柱状图)
2.2.4 直方图
2.2.5 饼状图
绘制横坐标为时间的图(总裁余)
2.3 模板3---结尾
python matplotlib 绘图
1 概述
腾讯、华为这些较大的科技公司的技术底蕴不仅仅是在于有人才,更在于有足够多的代码资源库,每开发一个项目,都会把相关数据、代码存进库里面。下次遇到类似的项目,可以直接查找库里的资源,在原代码上根据新任务需求增删改查,就完成一个新项目(类似)开发。
在电力系统中,操作票、指令票,也会存进系统里,遇到新任务时,会先查找库里的票,“旧篇重拟”,缩短编写难度和时间。
鉴于此,可以创建自己的库,相信几年下来,库里资源足够多,也很容易学习出成果啦。从而实现“一个新课题,只需要一人从0到1,后面的人能很快学完那个人的东西,然后从1到N;有了库,再不需要每个人都经历从0到1的苦”。
2 模板
2.1 模板1---开始
#(1)Matplotlib 是Python中类似 MATLAB 的绘图工具,在任何绘图之前,我们需要一个Figure对象,可以理解成我们需要一张画板才能开始绘图。
#(2)fig 还是我们熟悉的画板, axes 成了我们常用二维数组的形式访问,这在循环绘图时,额外好用。
import matplotlib.pyplot as plt
fig = plt.figure()
fig, axes = plt.subplots(nrows=2, ncols=2)
axes[0,0].set(title='Upper Left')
axes[0,1].set(title='Upper Right')
axes[1,0].set(title='Lower Left')
axes[1,1].set(title='Lower Right')
plt.show()
#(3)axes和.pyplot对比:相信不少人看过下面的代码,很简单并易懂,但是下面的作画方式只适合简单的绘图,快速的将图绘出。在处理复杂的绘图工作时,我们还是需要使用 Axes 来完成作画的。
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [10, 20, 25, 30], color='lightblue', linewidth=3)
plt.xlim(0.5, 4.5)
plt.show()
2.2 模板2----基本绘图(2D)
2.2.1 线
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
fig, axes = plt.subplots(nrows=2, ncols=2)
ax0, ax1, ax2, ax3 = axes.flatten()
axes[0,0].set(title='Upper Left')
axes[0,1].set(title='Upper Right')
axes[1,0].set(title='Lower Left')
axes[1,1].set(title='Lower Right')
x = np.linspace(0, np.pi)
y_sin = np.sin(x)
y_cos = np.cos(x)
ax0.plot(x, y_sin)
ax1.plot(x, y_sin, 'go--', linewidth=2, markersize=12)
ax3.plot(x, y_cos, color='red', marker='+', linestyle='dashed')
plt.show()
2.2.2 散点图
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
x = np.arange(10)
y = np.random.randn(10)
plt.scatter(x, y, color='red', marker='+')
plt.show()
2.2.3 条形图(柱状图)
2.2.4 直方图
2.2.5 饼状图
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
fig, axes = plt.subplots(nrows=2, ncols=2)
ax0, ax1, ax2, ax3 = axes.flatten()
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()
#饼图自动根据数据的百分比画饼.。labels是各个块的标签,如子图一。autopct=%1.1f%%表示格式化百分比精确输出,
#explode,突出某些块,不同的值突出的效果不一样。pctdistance=1.12百分比距离圆心的距离,默认是0.6.