Python初学小知识(十二):Matplotlib

十六、Matplotlib

Matplotlib是Python的绘图库,具备强大的绘图功能,且能在很多平台上使用。

1. 线型图

import matplotlib.pyplot as plt  #习惯于将“import matplotlib”写成“import matplotlib.pyplot as plt”
import numpy as np
%matplotlib inline   
#直接显示 Matplotlib 绘制的图像

np.random.seed(42)
x = np.random.randn(30)  #生成30个随机参数(均值为0,方差为1的正态分布)
plt.plot(x, 'r--o')

[<matplotlib.lines.Line2D at 0x23e5668e550>]

在这里插入图片描述

2. 颜色、标记形状、线型

用于设置线型图中线条颜色的常用参数如下:
(1)“b”:指定绘制的线条颜色为蓝色。
(2)“g”:指定绘制的线条颜色为绿色。
(3)“r”:指定绘制的线条颜色为红色。
(4)“c”:指定绘制的线条颜色为蓝绿色。
(5)“m”:指定绘制的线条颜色为洋红色。
(6)“y”:指定绘制的线条颜色为黄色。
(7)“k”:指定绘制的线条颜色为黑色。
(8)“w”:指定绘制的线条颜色为白色。

用于设置线型图中标记参数点形状的常用参数如下:
(1)“o”:指定标记实际点使用的形状为圆形。
(2)“”:指定标记实际点使用“”符号。
(3)“+”:指定标记实际点使用“+”符号。
(4)“x”:指定标记实际点使用“x”符号。

用于设置线型图中连接参数点线条形状的常用参数如下:
(1)“-”:指定线条形状为实线。
(2)“–”:指定线条形状为虚线。
(3)“-.”:指定线条形状为点实线。
(4)“:”:指定线条形状为点线。

import matplotlib.pyplot as plt 
import numpy as np
%matplotlib inline 

a = np.random.randn(30)
b = np.random.randn(30)
c = np.random.randn(30)
d = np.random.randn(30)
plt.plot(a, 'r--o', b, 'b-*', c, 'g-.+', d, 'm:x')  #此时没有使用随机种子,结果有差异性

[<matplotlib.lines.Line2D at 0x23e5677b970>,
<matplotlib.lines.Line2D at 0x23e5677b7f0>,
<matplotlib.lines.Line2D at 0x23e5677b9a0>,
<matplotlib.lines.Line2D at 0x23e5677bac0>]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-59fuhTdc-1637503966762)(output_3_1.png)]

3. 标签、图例

import matplotlib.pyplot as plt 
import numpy as np
%matplotlib inline 

np.random.seed(42)
x = np.random.randn(30)
y = np.random.randn(30)

plt.title('Example')
plt.xlabel('X')
plt.ylabel('Y')
X, = plt.plot(x, 'r--o')
Y, = plt.plot(y, 'b-x')
plt.legend([X, Y], ['X_value', 'Y_value'])

<matplotlib.legend.Legend at 0x23e56c3f0a0>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bZtHLgRp-1637503966765)(output_5_1.png)]

4. 子图

import matplotlib.pyplot as plt 
import numpy as np
%matplotlib inline 

a = np.random.randn(30)
b = np.random.randn(30)
c = np.random.randn(30)
d = np.random.randn(30)

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)

A, = ax1.plot(a, 'r--o')
ax1.legend([A], ["A"])
B, = ax2.plot(b, 'b-*')
ax2.legend([B], ["B"])
C, = ax3.plot(c, 'g-.+')
ax3.legend([C], ["C"])
D, = ax4.plot(d, 'm:x')
ax4.legend([D], ["D"])

<matplotlib.legend.Legend at 0x23e56da4d60>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCPzuHp0-1637503966768)(output_7_1.png)]

5. 散点图

import matplotlib.pyplot as plt 
import numpy as np
%matplotlib inline 

np.random.seed(42)
x = np.random.randn(30)
y = np.random.randn(30)

plt.scatter(x, y, c='g', marker='o', label='(X, Y)')  
plt.title("Example")
plt.xlabel('X_value')
plt.ylabel('Y_value')
plt.legend(loc=1)
plt.show()

在这里插入图片描述

上面的代码中:

  • c='g’指定颜色是绿色;
  • marker='o’指定参数点的形状是圆形;
  • label=’(X, Y)'指定在散点图中绘制的参数点使用的图例,与线型图中的图例不同;
  • plt.legend(loc=1)对图例的位置进行强制设定,loc=0、1、2、3、4分别代表强制设定在最好的位置、右上角、左上角、左下角、右下角的位置。

6. 直方图

import matplotlib.pyplot as plt 
import numpy as np
%matplotlib inline 

np.random.seed(42)
x = np.random.randn(1000)
plt.hist(x, bins=20, color='g')  #bins=20指定直方图有20条
plt.title("Example")
plt.xlabel('X_value')
plt.ylabel('Y_value')
plt.show()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tU2gtCwW-1637503966771)(output_12_0.png)]

7. 饼图

import matplotlib.pyplot as plt 

mylabels = ['Dogs', 'Cats', 'Birds']
sizes = [15, 50, 35]  #mylabels每部分对应的占比

plt.pie(sizes, explode=(0, 0, 0.1), labels=mylabels, autopct='%1.1f%%', startangle=90)
plt.axis('equal')

plt.show()

在这里插入图片描述

上面的代码中:

  • explode定义每部分数据系列之间的间隔,设置(0, 0, 0.1)就能突出第3部分;
  • autopct就是将sizes中的数据以所定义的浮点精度进行显示;
  • startangle 是绘制第 1 块饼图时该饼图与X轴正方向的夹角度数,这里设置为90,如果不设置就默认为0;
  • plt.axis(‘equal’)是必不可少的,用于使X轴和Y轴的刻度保持一致,只有这样,最后得到饼图才是圆形的。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值