有什么比较好的画册设计网站,做网页网站,银川制作网站,恩做网站动态页面好学了这么多年python了#xff0c;还一直没有系统地了解过python的画图功能。
每次都是现学现用#xff0c;但是某些比较紧急的场合#xff0c;往往就会比较耗时又耗力#xff0c;因为不成体系#xff0c;还经常会忘记已经吸纳的新知识。
所以#xff0c;我决定把这块的画…学了这么多年python了还一直没有系统地了解过python的画图功能。
每次都是现学现用但是某些比较紧急的场合往往就会比较耗时又耗力因为不成体系还经常会忘记已经吸纳的新知识。
所以我决定把这块的画图功能系统的学习一下进行知识储备。
Python的pyplot模块绘制图表的基本操作。一个简单的二维折线图
import matplotlib.pyplot as plt
x [1, 2, 3, 4]
y [1.2, 2.5, 4.5, 7.3]
# plot函数作图
plt.plot(x, y)
plt.savefig(test.png, dpi120)
# show函数展示出这个图如果没有这行代码则程序完成绘图但看不到
plt.show()
运行后的效果是这样的从数值对应上横轴应该是x轴纵轴应该是y轴。
但是对应图与代码另外疑问的是为什么x轴给出的是整数在绘制时却用了浮点而又为什么y轴给出的是浮点数在绘制时却用的是整数呢
----------------------------------------------------------------------------------------------
另一个点是
show()函数在通常的运行情况下将会阻塞程序的运行直到用户关闭绘图窗口。换句话说在关闭show()函数弹出的图像窗口前show()函数后面的代码不会运行直到用户关闭图像窗口才会继续。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
我测试了普通的print()之后发现并没有阻塞。。。
但是呢当我在调用plt.savefig()将当前的Figure对象保存成图像文件时
如果plt.savefig()代码放在了plt.show()之后那我本地保存的图像就是一张空白图不符合预期
但如果plt.savefig()代码放在了plt.show()之前则可以成功实现保存。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
虽然问题不大但也让我产生疑问到底是有阻塞还是没有阻塞呢如果有阻塞什么而又不阻塞什么呢不同风格的线条
import matplotlib.pyplot as plt
x [1, 2, 3, 4]
y [1.2, 2.5, 4.5, 7.3]
#线条颜色、线条样式、突出(marker)每个记录的点、线条粗细
plt.plot(x, y, colorr, linestyle--, marker*, linewidth1.0)
plt.show()
运行后的效果
---------------------------------------------------------------------------------------------
线条风格(linstyle)
supported values are -, --, -., :, None, , , solid, dashed, dashdot, dotted
-----------------------------------------------------------------------------------------------
线条颜色(color)
-----------------------------------------------------------------------------------------------
线条标记(marker)坐标轴控制
-绘图范围
import matplotlib.pyplot as plt
import numpy as np
#x 的取值范围
x np.arange(-5, 5, 0.02)
y np.sin(x)
#控制图像的绘图范围
#plt.axis([x_min, x_max, y_min, y_max])
plt.axis([-np.pi, np.pi, -2, 2])
plt.plot(x, y, colorr, linestyle-, linewidth1)
plt.show()
运行效果如下
值得注意的一个点
虽然x的取值范围在[−5,5]但是绘图时只是展示了[−π,π]之间的函数图。
引出一个可以控制图像范围的函数
plt.axis([x_min, x_max, y_min, y_max])
如果只是单独想要控制x轴或者y轴的取值则可以用plt.xlim(x_min, x_max)和plt.ylim(y_min, y_max)用法与plt.axis()类似。
----------------------------------------------------------------------------------------------
-标题和间隔
import matplotlib.pyplot as plt
import numpy as np
import math
x np.arange(-2 * math.pi, 2 * math.pi, 0.02)
y np.sin(x)
plt.axis([-10, 10, -2, 2])
plt.xticks([i * np.pi/2 for i in range(-4, 5)], [str(i * 0.5) $\pi$ for i in range(-4, 5)])
plt.yticks([i * 0.5 for i in range(-4, 5)])
plt.xlabel(x)
plt.ylabel(y)
plt.plot(x, y, colorr, linestyle-, linewidth1)
plt.show()
运行效果如下
纯粹知识的学习记录
函数plt.xlabel()和plt.xlabel()用来实现对x轴和y轴添加标题。
函数plt.xticks()和plt.yticks()用来实现对x轴和y轴坐标间隔也就是轴记号的设定。用法上函数的输入是两个列表第一个表示取值第二个表示标记。当然如果你的标记就是取值本身则第二个列表可以忽略。支持latex公式表达PS感谢参考文章的作者从细节、小处一步步向前推进能够很好的帮助我建立知识体系。
不过一如既往地我的问题真多虽然问题不大但是拥有自己的思考分析我认为是应该一直坚持的事情。
毕竟自己小菜鸡一直在参考文章进行学习期待学习后期可以有自己完全独立、不依赖参考文章的成形文字。