可视化——matploblib常见api(二)

本文介绍了使用Matplotlib进行数据可视化的多种技巧,包括如何利用fill_between制作不同效果的填充图,以及step和bar函数的区别应用。同时展示了如何通过tight_layout调整布局,确保图表元素不被截断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可视化——matplotlib常用api(一)

基本命令说明
plt.tight_layout()针对fig, ax = plt.subplots(1, 3)
plt.axis(‘equal’)坐标轴刻度一致
plt.legend(loc=”)center left/center/center right
upper left/upper center/upper right
lower left/lower center/lower right
right/best
cmapcolormap: plt.cm.jet

ListedColormap

class ListedColormap(Colormap):
    """Colormap object generated from a list of colors.
    ...
    """
  • 1
  • 2
  • 3
  • 4
from matplotlib.colors import ListedColormap
colors = ('lightgreen', 'cyan', 'gray', 'r', 'b')
cmp = ListedColormap(colors[:np.unique(y_train)])
  • 1
  • 2
  • 3

plt.fill_between()

我们要做出如下的效果图:




import numpy as np
import matplotlib.pyplot as plt


def main():
    x = np.arange(0, 2, .01)
    y1 = np.sin(2*np.pi*x)
    y2 = 1.2*np.sin(4*np.pi*x)

    fig, (ax1, ax2, ax3) = plt.subplots(nrows=3, ncols=1, sharex=True)
    ax1.fill_between(x, 0, y1)
    ax1.set_title('between 0 and '+r'$y_1=\sin(2\pi x)$')
    ax2.fill_between(x, y1, 1)
    ax2.set_title('between'+ r'$y_1=\sin(2\pi x)$ and 1')
    ax3.fill_between(x, y1, y2)
    ax3.set_title('between ' +r'$y_1=\sin(2\pi x)$'+ ' and '+r'$ y_2=1.2 \sin(4\pi x)$')
    ax3.set_xlabel('x')
    plt.savefig('./1.png')
    plt.show()

if __name__ == '__main__':
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

fill between where




import numpy as np
import matplotlib.pyplot as plt


def main():
    x = np.arange(0, 2, .01)
    y1 = np.sin(2*np.pi*x)
    y2 = 1.2*np.sin(4*np.pi*x)
    plt.figure(figsize=(6, 4.5))
    plt.plot(x, y1, x, y2, 'k')
    plt.fill_between(x, y1, y2, y1>=y2, facecolor='g')
                            # where=y1>=y2
    plt.fill_between(x, y1, y2, y1<y2, facecolor='r')
    plt.savefig('./2.png')
    plt.show()

if __name__ == '__main__':
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

plt.step() 与 plt.bar()

  • plt.bar(range(1, len(x)), x, alpha=.4, align=’center’, label=’individual’)

  • plt.step(range(1, 14), np.cumsum(x), where=’mid’, label=’cumsum’)

x = [ 4.8923083   2.46635032  1.42809973  1.01233462  0.84906459  0.60181514  0.52251546  0.08414846  0.33051429  0.29595018  0.16831254  0.21432212  0.2399553 ]
tot = sum(x)
x = [i/tol for i in x]
plt.bar(range(1, len(x)), x, alpha=.4, align='center', label='individual')
plt.step(range(1, len(x)), np.cumsum(x), where='mid', label='cumsum')
plt.legend(loc='best', frameon=False)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7


References

[1] plot fill between demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值