这篇文章发表于 1646 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

matplotlib画个简单的曲线图。这篇文章中的一切程序都是在python3的idle中运行的。

先给一个hello world程序,

1
2
3
4
5
6
7
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,1,50)
y=2*x+1
plt.figure(num='hello world')
plt.plot(x,y)
plt.show()

然后是针对它里面一些东西的说明:

  • 这个plt.figure定义了一个图像窗口,可以调参数,东西有点多
  • 以上的linspace就是在-1~1区间内均匀取了50个点;那个plt.plot就是指定用x和y进行作图。

    注:如果是plt.plot(10*x,y),那么x轴就会变,而y轴上的值都没变,因为之前y已经被赋值了。

  • 一些改进的操作:

    指定对应的区间范围 plt.xlim(0,1)

    指定整个图的标题 plt.title('xxx')

    指定坐标轴的标题 plt.xlabel('xxxxxx')

    指定坐标轴上的分隔 plt.xticks(np.linspace(0,1,21)) ,即有20段

    注:还能够添加数据标签,比如plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

    拉长图片 plt.figure(figsize=(10,20))

    注:这个能够调整一些重叠的坐标轴文字不再重叠。

    加一个网格 plt.grid()

    设置每个点的图标 plt.plot(x,y,marker='^')

    设置线条的宽度 plt.plot(linewidth=0.4)

    该实线为虚线 plt.plot(x,y1,linestyle='--')

    注:xlimxticks互相冲突了,那么最终显示的图是以后设置者为准。

    保存得到的图像 savefig("xxxx.jpg")

这两篇参考文章写的太棒了。这里这里

最后运行一个如下这样的简单程序。

1
2
3
4
5
6
7
8
9
10
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,10,50)
y=2*x+1
plt.figure(num='尼玛')
plt.plot(x,y,linewidth=0.1, marker='^')
plt.xlabel('x')
plt.grid()
plt.title('hello world')
plt.show()

图片如下:

SharedScreenshot