Python深度解析matplotlib各种基础图

举报
冬晨夕阳 发表于 2022/03/30 01:53:01 2022/03/30
【摘要】 如果说 pandas 是 python 中一个处理数据的好手,那么 matplotlib 则是把这个数据展现在人们眼球面前的使者,本篇我们来学习一下 matplotlib 的用法和 pyplot 的方式作...

如果说 pandas 是 python 中一个处理数据的好手,那么 matplotlib 则是把这个数据展现在人们眼球面前的使者,本篇我们来学习一下 matplotlib 的用法和 pyplot 的方式作图,他画图便捷,唯一不足的是我觉得它没有那么高大上。

  • Matplotlib 是 python 最著名的会图库,它提供了一整套和 MATLAB
    类似的绘图函数集,十分适合编写短小的脚本程序以进行快速绘图。
  • Matplotlib 通过 pyplot 模块提供一套和 MATLAB 类似的绘图的 API,将众多绘图对象所构成的复杂的结构隐藏的这套
    API 内部。
  • 我们可以调用 pyplot 模块所提供的函数就可以实现快速绘图以及设置图标的各种细节,pyplot
    模块虽然用法简单,但不适合在较大的应用程序中使用,通常是使用面向对象的方式来画图,本节我们先以 pyplot 的方式绘图。

常用的对象:
Figure 、 可以理解为画板。
Axes 、 理解为画板的上画纸,一个画板上可以放一个以上的画纸。
Labels 、 标签,xlabel,ylabel 分别设置 X,Y 轴的标题文字。
Lim 、 xlim,ylim 分别设置 X,Y 轴的显示范围。
Legend 、 显示图示,即图中表示每条曲线的标签和样式的矩形区域。

常用图形
 Plot 散列图

from matplotlib import pyplot as plt #绘图库
import numpy as np  #科学计算
x=np.linspace(1,10,100) #等差数列
y=np.sin(x)
z=np.cos(x)
plt.figure(figsize=(10,4))
plt.plot(x,y,label="$sin(x)",color='r',linewidth=2)
plt.plot(x,z,label="$cos(x)",color='g',linewidth=2)
plt.xlabel('X')
plt.ylabel('Y')
plt.title("plt test")
plt.legend()
plt.show()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

由于画图里的对象太多,属性更多,为了清晰思路,建议使用面向对象的方式来画图。下图为效果:
在这里插入图片描述
 Scatter 散点图

from matplotlib import pyplot as plt
import numpy as np
x = np.random.randint(1,10,20)
y = np.random.randint(1,10,20)
plt.figure(figsize=(10,4))
plt.scatter(x,y,s=x*100,label="$xy",marker=(5,1))
plt.xlabel('X')
plt.xlabel('Y')
plt.title("plt test")
plt.legend()
plt.show()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

S 代表散点的面积大小,marker 的第一个参数代表散点的边数,第二个参数代表三
点的样式,0 代表多边形,1 代表星形,2 代表放射形,3 表示忽略边形也就是圆
形。
在这里插入图片描述

 Pie 饼图

from matplotlib import pyplot as plt
import numpy as np
x=[4,5,6]
plt.figure()
plt.pie(x,labels=list('abc'),colors=list('gbr'))
plt.xlabel('X')
plt.ylabel('Y')
plt.title('plt test')
plt.legend()
plt.show()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述
Labels 代表每一块的标签,colors 是每一块的颜色。可以调整 figsize 调整大小。
可以改变是圆还是椭圆,如果是正方形的 figsize 就是正圆,否则就是椭圆。

 Bar 条形图

from matplotlib import pyplot as plt
import numpy as np
x=[1,2,3,4]
y=[6,5,7,4]
y1=[2,3,4,5]
plt.figure(figsize=(10,6))
plt.bar(x,height=y,color='b',width=0.35,label='man')
plt.bar(np.array(x)+0.35,height=y1,color='g',width=0.35,label='woman')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('plt test')
plt.legend()
plt.show()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
Bar 可以绘制柱状图,width 设置的是条状的宽度,在这里需要留意下,list 不能
直接和数字相加,需要用 np.array 转化为数组。看看效果。

条状图
使用barh可以画条状图。

from matplotlib import pyplot as plt
import numpy as np
x=[1,2,3,4]
y=[6,5,7,4]
y1=[2,3,4,5]
plt.figure(figsize=(10,6))
plt.barh(np.array(x)-0.5,width=y,color='b',label='man')
plt.barh(np.array(x)+0.5,width=y1,color='r',label='woman')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('plt test')
plt.legend()
plt.show()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

 Contour 环形图

from matplotlib import pyplot as plt
import numpy as np
x,y = np.ogrid[-1:1:5j,-1:1:5j]
f = x**2+y**2
plt.contour(f,colors=list('gbr'))
plt.xlabel('X')
plt.xlabel('Y')
plt.title('plt test')
plt.legend()
plt.show()

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

环形图一般用来画等高线,工作用到不多。不太理解。实现效果如下
在这里插入图片描述

文章来源: blog.csdn.net,作者:考古学家lx,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_43582101/article/details/88344933

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。