不到断气不罢休 发表于 2023-9-19 00:07:22

【matplotlib基础】--样式表

Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,这也是它经常为人诟病的地方。
不过,经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,
通过使用不同的样式表,可以整体改变绘制图形的风格,不用再调整一个个显示参数。
1. 样式表的使用

1.1. 所有内置样式表

首先,查看内置的样式表有哪些:
https://cdn.nlark.com/yuque/0/2023/png/2235414/1687074307928-660ebe76-6a86-4859-b6f2-f52ce64dc43b.png#averageHue=%23e6e8ed&clientId=uc2d4723d-efc1-4&from=paste&height=630&id=u71a215b4&originHeight=630&originWidth=362&originalType=binary&ratio=1&rotation=0&showTitle=false&size=45601&status=done&style=none&taskId=u01a90324-1108-4b42-99d1-a5e2bf9741e&title=&width=362
import matplotlib.pyplot as plt

plt.style.available1.2. 使用样式表的方式

使用样式表的方式有两种:
一种是全局样式表设置,比如:
plt.style.use("ggplot")随后的代码中,所有绘制的图形都是 ggplot 风格。
另一种局部样式表设置,比如:
with plt.style.context("classic"):
    # 绘制图形
    pass这种方式,样式表只在 with 范围内生效。
2. 不同样式表的效果

下面演示几种风格差异比较大的样式表。
首先,封装一个绘制图形的函数。
def draw():
    x = np.array(range(10))
    y = np.random.randint(10, 100, 10)
   
    fig = plt.figure(figsize=)
    fig.add_subplot(211)
    plt.plot(x, y)
   
    fig.add_subplot(212)
    plt.hist(y)2.1. classic 风格

with plt.style.context("classic"):
    draw()https://cdn.nlark.com/yuque/0/2023/png/2235414/1687075856166-12585034-d696-4d6d-9e5f-e91c8bc1cfcd.png#averageHue=%23e0e0e0&clientId=uc2d4723d-efc1-4&from=paste&height=293&id=u3a943e3a&originHeight=293&originWidth=418&originalType=binary&ratio=1&rotation=0&showTitle=false&size=15694&status=done&style=none&taskId=uc35efa55-95a3-4714-a67c-d2bfbeb10c0&title=&width=418
2.2. Solarize_Light2 风格

with plt.style.context("Solarize_Light2"):
    draw()https://cdn.nlark.com/yuque/0/2023/png/2235414/1687075885334-1ac3237c-3252-43ae-8884-940750295ef7.png#averageHue=%23f2ecd9&clientId=uc2d4723d-efc1-4&from=paste&height=350&id=ub9a56f24&originHeight=350&originWidth=509&originalType=binary&ratio=1&rotation=0&showTitle=false&size=17850&status=done&style=none&taskId=uaca1863d-d37f-4d36-87e5-81542817347&title=&width=509
2.3. bmh 风格

with plt.style.context("bmh"):
    draw()https://cdn.nlark.com/yuque/0/2023/png/2235414/1687076065114-786ef64e-24f3-4901-b140-cf082f7b4b05.png#averageHue=%23f0f0f0&clientId=uc2d4723d-efc1-4&from=paste&height=345&id=u59381e3e&originHeight=345&originWidth=512&originalType=binary&ratio=1&rotation=0&showTitle=false&size=25560&status=done&style=none&taskId=u7ffcf95d-c604-4e96-8740-c60971e77ca&title=&width=512
2.4. dark_background 风格

with plt.style.context("dark_background"):
    draw()        https://cdn.nlark.com/yuque/0/2023/png/2235414/1687076081066-9ded718c-bc96-4994-a2bf-58555eb4fda1.png#averageHue=%23060606&clientId=uc2d4723d-efc1-4&from=paste&height=350&id=u2c816283&originHeight=350&originWidth=517&originalType=binary&ratio=1&rotation=0&showTitle=false&size=15202&status=done&style=none&taskId=u6b10b7c9-09aa-407c-b760-628ecf74274&title=&width=517
2.5. fast 风格

with plt.style.context("fast"):
    draw()https://cdn.nlark.com/yuque/0/2023/png/2235414/1687076104651-dc3dcf0f-3080-46d5-9ad5-5f0fba078b79.png#averageHue=%23f8f8f8&clientId=uc2d4723d-efc1-4&from=paste&height=350&id=u8b8144df&originHeight=350&originWidth=517&originalType=binary&ratio=1&rotation=0&showTitle=false&size=17835&status=done&style=none&taskId=u83ab6801-da0f-48ab-bf6a-0adee33dc4f&title=&width=517
2.6. ggplot 风格

with plt.style.context("ggplot"):
    draw()https://cdn.nlark.com/yuque/0/2023/png/2235414/1687076122377-c3efa764-2b34-49fd-9edb-cb234318d376.png#averageHue=%23ecdcda&clientId=uc2d4723d-efc1-4&from=paste&height=355&id=u25a8c99d&originHeight=355&originWidth=528&originalType=binary&ratio=1&rotation=0&showTitle=false&size=15677&status=done&style=none&taskId=ud0048a31-186a-4932-870c-76795725395&title=&width=528
2.7. seaborn 风格

seaborn是公认颜值比较高的绘图库,所以 Matplotlib 也支持很多种seaborn风格。
这里使用的是默认的 seaborn 风格。
with plt.style.context("seaborn-v0_8"):
    draw()https://cdn.nlark.com/yuque/0/2023/png/2235414/1687076169597-af25e54f-3a66-446c-8472-3248c733580a.png#averageHue=%23fafbfc&clientId=uc2d4723d-efc1-4&from=paste&height=350&id=ua03d5568&originHeight=350&originWidth=509&originalType=binary&ratio=1&rotation=0&showTitle=false&size=17491&status=done&style=none&taskId=ue58166b3-0c7c-44c3-9a4a-41560b26d97&title=&width=509
3. 总结

内置的样式表方便易用,提供了许多预定义的样式,可以快速帮助我们创建美观的图表。
使用内置的样式表还有个好处是可以保持图表的统一风格,使得图表具有更高的可读性和可维护性。
Matplotlib提供的丰富的样式表,可以满足不同类型的绘图需求,并且还可以通过自定义样式表来实现更加个性化的绘图效果。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【matplotlib基础】--样式表