当前位置:   article > 正文

matplot画图-画曲线(一)

matplot画图

目录

1、画简单曲线

1.1、画一个正弦曲线

1.2、调整更多的样式

1.3、添加图例

2、添加图注

2.1、设置画布大小

2.2、添加标题和坐标轴描述

2.3、设置刻度范围

3、画多个曲线

4、保存为图像

5、处理中文乱码问题

 6、添加注释

7、figure


        Matplotlib 是 Python 的一个绘图库。它包含了大量的工具,你可以使用这些工具创建各种图形,包括简单的散点图,正弦曲线,甚至是三维图形。

全局定义:

  1. import numpy as np
  2. import matplotlib.pyplot as plt

1、画简单曲线

1.1、画一个正弦曲线

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. def line_test():
  4. # 它包含了50个元素的数组,这50个元素均匀的分布在[0, 2*pi]的区间上。然后通过np.sin(x)生成y
  5. x = np.linspace(0, 2 * np.pi, 50)
  6. y = np.sin(x)
  7. # 通过plt.plot(x, y)来画出图形,并通过plt.show()来显示。
  8. plt.plot(x, y)
  9. plt.show()

        结果:

1.2、调整更多的样式

        将plot函数改为:plt.plot(x, y, 'm--')

结果为:

列举常用样式,三个组合使用,决定线的样式:

1、常见颜色表示:

颜色

蓝色

绿色

红色

青色

品红

黄色

黑色

白色

表示方式

b

g

r

c

m

y

k

w

2、常见点类型:

点类型

像素

方形

三角形

表示方式

.

,

s

^

3、常见线类型:

线类型

直线

虚线

点线

点划线

-

--

:

-.

1.3、添加图例

  1. plt.plot(x, y, 'm--', label="y=sin(x)") # 添加图例
  2. plt.legend(loc='best') # 自动适配最佳位置

结果:

2、添加图注

2.1、设置画布大小

plt.figure(figsize=(6, 4), dpi=100) # 画布调整为 600*400, w*h

结果:

        其中dpi为每英寸的像素点数,默认为100。figsize=(w, h),最终的画布大小为(w*dpi, h*dpi)。

https://blog.csdn.net/weixin_39956558/article/details/110908699#commentBox

2.2、添加标题和坐标轴描述

  1. plt.title("y=sin(x)") # 设置标题
  2. plt.xlabel('X') # xlabel 和 ylabel 来设置轴的名称
  3. plt.ylabel('Y')

2.3、设置刻度范围

  1. # 设置坐标轴的刻度,范围
  2. plt.xlim((0, 2 * np.pi))
  3. plt.ylim((-2, 2))
  4. # 可以通过 xticks 和 yticks 来设置轴的刻度
  5. plt.xticks((0, np.pi * 0.5, np.pi, np.pi * 1.5, np.pi * 2))

结果:

3、画多个曲线

  1. plt.plot(x, y, 'm--', label="y=sin(x)")
  2. plt.plot(x, np.cos(x), 'g', label="y=cos(x)")
  3. plt.legend(loc='best')

结果:

4、保存为图像

  1. plt.savefig("vis.jpg")
  2. plt.savefig("test.png", dpi=120) # 指定分辨率

5、处理中文乱码问题

  1. x = ['南京', '上海', '成都', '香港']
  2. y = [60600, 53000, 50400, 52000]
  3. plt.plot(x, y)
  4. plt.title("中文乱码")
  5. plt.show()

         其实只需要配置下后台字体即可。

  1. x = ['南京', '上海', '成都', '香港']
  2. y = [60600, 53000, 50400, 52000]
  3. plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
  4. plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
  5. plt.plot(x, y)
  6. plt.title("中文正常")
  7. plt.show()

 6、添加注释

  1. def test1():
  2. x = np.linspace(0, 2 * np.pi, 50)
  3. y = np.sin(x)
  4. plt.plot(x, y, label="sin(x)")
  5. plt.legend(loc='best')
  6. #####添加注释######
  7. # 需要对特定的点进行标注,我们可以使用 plt.annotate 函数来实现。
  8. # 这里我们要标注的点是 (x0, y0) = (π, 0)。
  9. # 我们也可以使用 plt.text 函数来添加注释。
  10. x0 = np.pi
  11. y0 = 0
  12. # 画出标注点
  13. plt.scatter(x0, y0, s=50)
  14. plt.annotate('sin(np.pi)=%s' % y0, xy=(np.pi, 0), xycoords='data', xytext=(+30, -30),
  15. textcoords='offset points', fontsize=16,
  16. arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))
  17. # 对于 annotate 函数的参数,做一个简单解释:
  18. # 'sin(np.pi)=%s' % y0 代表标注的内容,可以通过字符串 %s 将 y0 的值传入字符串;
  19. # 参数 xycoords='data' 是说基于数据的值来选位置;
  20. # xytext=(+30, -30) 和 textcoords='offset points' 表示对于标注位置的描述 和 xy 偏差值,即标注位置是 xy 位置向右移动 30,向下移动30
  21. # arrowprops 是对图中箭头类型和箭头弧度的设置,需要用 dict 形式传入。
  22. plt.text(0.5, -0.25, "sin(np.pi) = 0", fontdict={'size': 18, 'color': 'r'})
  23. plt.show()

结果:

7、figure

        在matplotlib中,整个图表为一个figure对象。其实对于每一个弹出的小窗口就是一个Figure对象。下面演示如何在一个代码中创建多个Figure对象,也就是多个小窗口。

  1. def test2():
  2. x = np.linspace(-1, 1, 50)
  3. y1 = x ** 2
  4. y2 = x * 2
  5. # 这个是第一个figure对象,下面的内容都会在第一个figure中显示
  6. plt.figure()
  7. plt.plot(x, y1)
  8. # 这里第二个figure对象
  9. plt.figure()
  10. plt.plot(x, y2)
  11. plt.show()

figure参数:

  1. plt.figure(num = 3,figsize = (10,5)) # 指定新创建的为figure3
  2. plt.figure("test") # 指定新创建的为test

参考文章:

1、Python--Matlibplot画图功能演示

https://blog.csdn.net/qq_25948717/article/details/82724686

2、Python-matplotlib画图

https://zhuanlan.zhihu.com/p/33270402

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/115637
推荐阅读
相关标签
  

闽ICP备14008679号