matplotlib 包下的 pyplot模块可以帮助我们绘制生活中大多数简单图形。
我们一般这样导入它 : from matplotlib import pyplot as plt
其中, plt对象的plot方法可以在二维坐标系中绘制图形, 功能非常强大。
需要注意的地方全在代码注释中, 提醒自己以后哪个地方忘记了可以随时回来看看。
from matplotlib import pyplot as plt
# 查看所有可用的style风格
# print(plt.style.available)
# fivethirtyeight是特别好看的一个风格, 自带grid
plt.style.use('fivethirtyeight')
# 类似于手写体的style风格, 也非常好看, 不带grid
# plt.xkcd()
ages_x = [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55]
py_dev_y = [20046, 17100, 20000, 24744, 30500, 37732, 41247, 45372, 48876, 53850, 57287, 63016, 65998, 70003, 70000, 71496, 75370, 83640, 84666,
84392, 78254, 85000, 87038, 91991, 100000, 94796, 97962, 93302, 99240, 102736, 112285, 100771, 104708, 108423, 101407, 112542, 122870, 120000]
js_dev_y = [16446, 16791, 18942, 21780, 25704, 29000, 34372, 37810, 43515, 46823, 49293, 53437, 56373, 62375, 66674, 68745, 68746, 74583, 79000,
78508, 79996, 80403, 83820, 88833, 91660, 87892, 96243, 90000, 99313, 91660, 102264, 100000, 100000, 91660, 99240, 108000, 105000, 104000]
dev_y = [17784, 16500, 18012, 20628, 25206, 30252, 34368, 38496, 42000, 46752, 49320, 53200, 56000, 62316, 64928, 67317, 68748, 73752, 77232,
78000, 78508, 79536, 82488, 88935, 90000, 90056, 95000, 90000, 91633, 91660, 98150, 98964, 100000, 98988, 100000, 108923, 105000, 103117]
# k表示黑色, b表示蓝色. (但是颜色用hex表示会更加真切: 如 #444444表示黑色 #5a7d9a表示蓝色)
# plt.plot(ages_x, py_dev_y, color='k', label='Python')
# linestyle 支持的所有样式: '-', '--', '-.', ':', 'None', ' ', '', 'solid', 'dashed', 'dashdot', 'dotted'
# marker所有支持的样式: https://matplotlib.org/3.1.1/api/markers_api.html#module-matplotlib.markers
plt.plot(ages_x, py_dev_y, color='#5a7d9a', label='Python',
linestyle='-', marker='', linewidth=3)
plt.plot(ages_x, dev_y, color='#33FF38',
label='Average', linestyle='-', linewidth=2)
plt.plot(ages_x, js_dev_y, color='#444444',
label='JavaScript', linestyle='--', linewidth=2)
# 设置横轴与纵轴标签, 注意不可为中文, 因为当前字体里不支持非Ascii字符的显示
plt.xlabel('age')
plt.ylabel('salary')
# 设置标题
plt.title('First plot')
# 设置图形界面出现表格
# plt.grid()
# 设置曲线的标签, 如果在plot函数参数label传入对应的参数也有一样的效果, 但是plt.legend不可省略.
# plt.legend(['Python'])
plt.legend()
# 让展示的图片更好看, 更紧致
plt.tight_layout()
# 保存展示的图片到相对路径下的plot.png中
plt.savefig('plot.png')
# 显示所绘制的plot图形
plt.show()
运行结果:
![](https://img.haomeiwen.com/i22578190/a42967df6f11722e.png)
网友评论