当前位置:   article > 正文

【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)_matplotlib黑色虚线

matplotlib黑色虚线

相关文章:

全网最详细超长python学习笔记、14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了!

【1】windows系统如何安装后缀是whl的python库

【2】超级详细Python-matplotlib画图,手把手教你画图!(线条颜色、大小、线形、标签)

【3】超级详细matplotlib使用教程,手把手教你画图!(多个图、刻度、标签、图例等)

【4】python读写文件操作---详细讲解!

【5】数据可视化pygal,画出美观的图表

官网参考链接:Pygal — pygal 2.0.0 documentation

基本绘画设置

1. Figure和Subplot

matplotlib的图像都位于Figure对象中,你可以用plt.figure创建一个新的Figure.在subplot上进行绘制

  1. import matplotlib.pyplot as plt
  2. #这时会弹出一个空窗
  3. fig = plt.figure()
  4. #这条代码的意思是:图像应该是2X2的,且当前选中的是第一个
  5. ax1 = fig.add_subplot(2,2,1)
  6. #再绘制两个
  7. ax2 = fig.add_subplot(2,2,2)
  8. ax3 = fig.add_subplot(2,2,3)
  9. plt.show()


如果想添加线性:

  1. from numpy.random import randn
  2. plt.plot(randn(50).cumsum(), 'k--')
  3. #'k--'是一个线型选项,用于告诉matplotlib绘制黑色虚线图。

  1. import matplotlib.pyplot as plt
  2. from numpy.random import randn
  3. #'k--'是一个线型选项,用于告诉matplotlib绘制黑色虚线图。
  4. #这时会弹出一个空窗
  5. fig = plt.figure()
  6. #这条代码的意思是:图像应该是2X2的,且当前选中的是第一个
  7. ax1 = fig.add_subplot(2,2,1)
  8. plt.plot(randn(50).cumsum(), linestyle='-.')
  9. #再绘制两个
  10. ax2 = fig.add_subplot(2,2,2)
  11. plt.plot(randn(50).cumsum(), 'k')
  12. ax3 = fig.add_subplot(2,2,3)
  13. plt.plot(randn(50).cumsum(), 'k--')
  14. plt.show()

也可以创建一个新的Figure,并返回一个含有已创建subplot对象的NumPy数组:

  1. import matplotlib.pyplot as plt
  2. #创建了一个两行,三列的区域
  3. fig, axes = plt.subplots(2,3)
  4. plt.show()

效果如下:

2.调整subplot周围的间距

matplotlib会在subplot外围留下一定的边距,不太美观,利用subplots_adjust方法可以调整间距。

  1. #官网定义:
  2. def subplots_adjust(self, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
  3. #wspace, hspace:子图之间的横向间距、纵向间距分别与子图平均宽度、平均高度的比值。

如下图(图中所有子图的宽度和高度对应相等,子图平均宽度和平均高度分别为w和h):

  1. import matplotlib.pyplot as plt
  2. from numpy.random import randn
  3. fig, axes = plt.subplots(2,2, sharex=True, sharey=True)
  4. for i in range(2):
  5. for j in range(2):
  6. axes[i,j].hist(randn(500), bins=50, color='g', alpha=0.5)
  7. plt.subplots_adjust(wspace=0, hspace=0)
  8. plt.show()

效果如下:美观很多

3.颜色、标记和线型

根据x,y绘制绿色虚线

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. x= np.arange(1, 10, 1)
  4. y=2*x
  5. plt.plot(x, y, 'g--')
  6. #与下面设置是一样的
  7. plt.plot(x, y, linestyle='--', color='g')
  8. plt.show()

线型图可以加上一些标记,来强调实际的点

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from numpy.random import randn
  4. plt.plot(randn(30).cumsum(), 'ro--')
  5. #等价于
  6. plt.plot(randn(30).cumsum(), color='g', linestyle='dashed', marker='o')
  7. plt.show()

4.刻度、标签和图例

添加刻度和标签

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from numpy.random import randn
  4. fig = plt.figure()
  5. ax = fig.add_subplot(1,1,1)
  6. ax.plot(randn(1000).cumsum())
  7. #修改X轴的刻度
  8. #刻度放在哪些位置
  9. ticks = ax.set_xticks([0,250,500,750,1000])
  10. #也可以将其他值用作标签
  11. labels = ax.set_xticklabels(['one','two','three','four','five'], rotation=30, fontsize='small')
  12. #为X轴设置一个名称
  13. ax.set_title('My first matplotlib plot')
  14. #设置一个标题
  15. ax.set_xlabel('Stages')
  16. plt.show()

添加图例:

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. from numpy.random import randn
  4. fig = plt.figure()
  5. ax = fig.add_subplot(1,1,1)
  6. ax.plot(randn(1000).cumsum(), 'g', label='one')
  7. ax.plot(randn(1000).cumsum(), 'b--', label='two')
  8. ax.plot(randn(1000).cumsum(), 'r-.', label='three')
  9. ax.legend(loc='best')
  10. plt.show()
ax.legend(loc='')

  设置best可以让图标在最合适位置显示。

 绘制简单的折线图

(1). 函数plot()

  1. import matplotlib.pyplot as plt
  2. squares = [1, 4, 9, 16, 25]
  3. plt.plot(squares)
  4. plt.show()

(2). 修改标签文字和线条粗细

  1. import matplotlib.pyplot as plt
  2. squares = [1, 4, 9, 16, 25]
  3. #参数linewidth 决定了plot() 绘制的线条的粗细
  4. plt.plot(squares, linewidth=5)
  5. # 设置图表标题, 并给坐标轴加上标签
  6. plt.title("Square Numbers", fontsize=24)
  7. plt.xlabel("Value", fontsize=14)
  8. plt.ylabel("Square of Value", fontsize=14)
  9. # 设置刻度标记的大小
  10. plt.tick_params(axis='both', labelsize=14)
  11. plt.show()

2.marker标记参数

  1. '.' point marker
  2. ',' pixel marker
  3. 'o' circle marker
  4. 'v' triangle_down marker
  5. '^' triangle_up marker
  6. '<' triangle_left marker
  7. '>' triangle_right marker
  8. '1' tri_down marker
  9. '2' tri_up marker
  10. '3' tri_left marker
  11. '4' tri_right marker
  12. 's' square marker
  13. 'p' pentagon marker
  14. '*' star marker
  15. 'h' hexagon1 marker
  16. 'H' hexagon2 marker
  17. '+' plus marker
  18. 'x' x marker
  19. 'D' diamond marker
  20. 'd' thin_diamond marker
  21. '|' vline marker
  22. '_' hline marker

3. 绘制绘制散点图

(1). 使用scatter() 绘制散点图并设置其样式

  1. import matplotlib.pyplot as plt
  2. plt.scatter(2, 4)
  3. plt.show()

(2).使用scatter() 绘制一系列点

  1. import matplotlib.pyplot as plt
  2. x_values = [1, 2, 3, 4, 5]
  3. y_values = [1, 4, 9, 16, 25]
  4. #并使用实参s 设置了绘制图形时使用的点的尺寸
  5. plt.scatter(x_values, y_values, s=100)
  6. plt.show()

(3).删除数据点的轮廓

可在调用scatter() 时传递实参edgecolor=’none’

plt.scatter(x_values, y_values, edgecolor='none', s=40)

(4).自定义颜色

要修改数据点的颜色, 可向scatter() 传递参数c , 并将其设置为要使用的颜色的名称,

plt.scatter(x_values, y_values, c='red', edgecolor='none', s=40)

(5).使用颜色映射

颜色映射 ( colormap) 是一系列颜色, 它们从起始颜色渐变到结束颜色。

  1. import matplotlib.pyplot as plt
  2. x_values = list(range(1001))
  3. y_values = [x**2 for x in x_values]
  4. plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor='none', s=40)
  5. # 设置每个坐标轴的取值范围
  6. plt.axis([0, 1100, 0, 1100000])
  7. plt.show()

  • 我们将参数c 设置成了一个 y 值列表, 并使用参数cmap 告诉pyplot 使用哪个颜色映射。
  • 这些代码将 y值较小的点显示为浅蓝色, 并将 y 值较大的点显示为深蓝色.

要让程序自动将图表保存到文件中, 可将对plt.show() 的调用替换为对plt.savefig() 的调用

plt.savefig('squares_plot.png', bbox_inches='tight')
  • 第一个实参指定要以什么样的文件名保存图表, 这个文件将存储到scatter_squares.py所在的目录中;
  • 第二个实参指定将图表多余的空白区域裁剪掉。 如果要保留图表周围多余的空白区域, 可省略这个实参。

(6). 隐藏坐标轴

plt.axes().get_xaxis().set_visible(False)
plt.axes().get_yaxis().set_visible(False)

(7). 调整尺寸以适合屏幕

函数figure() 用于指定图表的宽度、 高度、 分辨率和背景色。
你需要给形参figsize 指定一个元组, 向matplotlib指出绘图窗口的尺寸, 单位为英寸。
plt.figure(figsize=(10, 6))
3. 随机漫步
choice()函数

  1. #choice([0, 1, 2, 3, 4]) 随机地选择一个0~4之间的整数
  2. x_distance = choice([0, 1, 2, 3, 4])

range()函数
返回一系列连续增加的整数

randint()函数
返回一个1和面数之间的随机数

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

闽ICP备14008679号