4个Python库来美化你的Matplotlib图表

Matplotlib是一个被广泛使用的Python数据可视化库,相信很多人都使用过。

但是有时候总会觉得,Matplotlib做出来的图表不是很好看、不美观。 

今天就给大家分享四个美化Matplotlib图表的Python库,它们可以轻松让你的Matplotlib图表变得好看~

 而且每个方法都可以使用两行代码来实现,一条import语句和一条Matplotlib的使用语句。 

尽管这些库非常适合创建酷炫的图表,但是你还是需要了解你的目标受众以及可能遇到的视觉问题,比如色盲等情况。

下面就让我们来一起看看吧!

在开始使用探索Matplotlib图表之前,先创建一些虚拟数据,用来生成图表。 

几行代码轻松搞定。

import numpy as np 

# 生成 x 值

x = np.linspace( 0 , 10 , 20 ) 

# 生成 y 值

y = np.sin(x) 

y2 = np.cos(x)

01 赛博朋克风格——mplcyberpunk

赛博朋克是一种科幻小说的子类型,以其反乌托邦、技术先进的世界和反文化态度而闻名。

场景通常以未来主义风格描绘,经常包括霓虹灯及明亮、鲜艳的色彩等元素。

 比如,在制作海报或者是信息图表时,你需要额外的元素来吸引读者。这便是赛博朋克风格可以发挥作用的地方。

但是,你也要知道,它在为出版物创建图表或在论文中使用时可能会被视为不专业,并且可能不适合视觉有问题的读者。

 要开始使用这个主题,需要先安装mplcyberpunk库。

# 安装

pip install mplcyberpunk

使用赛博朋克主题,只需要调用plt.style.use(),并传入参数cypberpunk即可。

使用plt.scatter()绘制散点图。为了使我们的散点发光,还需要调用make_scatter_glow()函数。

import mplcyberpunk

import matplotlib.pyplot as plt



# 使用赛博朋克风样式

plt.style.use('cyberpunk')

plt.figure(figsize=(8, 8))



# 散点图1

plt.scatter(x, y, marker='o')

mplcyberpunk.make_scatter_glow()



# 散点图2

plt.scatter(x, y2, marker='o', c='lime')

mplcyberpunk.make_scatter_glow()



# 坐标轴名称

plt.xlabel('X-Axis')

plt.ylabel('Y-Axis')



# 显示

plt.show()

运行上面的代码时,可以得到下图。

 将赛博朋克主题应用到折线图中。为了使线条发光,我们可以调用make_lines_glow()。

# 使用赛博朋克风样式

plt.style.use('cyberpunk')

plt.figure(figsize=(8, 8))



# 折线图

plt.plot(x, y, marker='o')

plt.plot(x, y2, marker='o', c='lime')



# 发光效果

mplcyberpunk.make_lines_glow()



# 坐标轴名称

plt.xlabel('X-Axis')

plt.ylabel('Y-Axis')



# 显示

plt.show()

运行完成,将返回带有霓虹灯线条的图表。

 我们还可以将图表效果更进一步,在线条和X轴之间添加渐变填充。

# 使用赛博朋克风样式

plt.style.use('cyberpunk')

plt.figure(figsize=(8, 8))



# 折线图

plt.plot(x, y, marker='o')

plt.plot(x, y2, marker='o', c='lime')



# 发光效果+渐变填充

mplcyberpunk.add_gradient_fill(alpha_gradientglow=0.5, gradient_start='zero')



# 坐标轴名称

plt.xlabel('X-Axis')

plt.ylabel('Y-Axis')



# 显示

plt.show()

这便创造了一个非常有趣的效果。

 当然这个赛博朋克库还有其他的美化参数,大家可以去GitHub上查看使用。

 地址:https://github.com/dhaitz/mplcyberpunk

02 Matplotx

matplotx库提供了一种简单的方法可以快速对matplotlib图表进行美化。

它包含几个可以便捷使用,且可应用于任何matplotlib图表的主题。 

在深色主题的Jupyter Notebook或VSCode中处理图表时,出现亮白色的图表可能会有些许刺眼。 

为了减少这种影响,我们可以将样式设为深色主题。但是,这需要好几行代码才能实现。 

正如接下来所看到的,Matplotx使这个过程变得更加容易。由于它包含多个主题,我们可以轻松找到一个与VSCode主题相匹配的。 

通过打开终端/命令提示符并运行以下命令,可以将Matplotx安装到你的Python环境中去。

# 安装

pip install matplotx

安装好以后,可以使用with语句来调用plt.style.context和传入matplotx.styles。

在这里,我们可以选择众多的可用主题。 比如非常流行的Dracula主题。

import matplotx



with plt.style.context(matplotx.styles.dracula):

    # 散点图

    plt.scatter(x, y, c=y2)

    # 颜色类型

    plt.colorbar(label='Y2')

    # 坐标轴名称

    plt.xlabel('X')

    plt.ylabel('Y')

    # 显示

    plt.show()

运行代码,得到下图。

 其中matplotx中有许多不同的样式,具体情况如下。

 下面让我们用Pitaya Smoothie主题来创建一个折线图。

由于有多个子主题,我们需要使用方括号访问它们。

在这个例子中,我们有一个深色主题,所以我们需要传入「dark」参数才能使用。

with plt.style.context(matplotx.styles.pitaya_smoothie['dark']):

    # 折线图

    plt.plot(x, y, marker='o')

    plt.plot(x, y2, marker='o')

    # 坐标轴名称

    plt.xlabel('X')

    plt.ylabel('Y')

    # 显示

    plt.show()

当我们运行上面的代码时,我们会得到下面这个折线图。

 当然也有许多浅色主题。比如Pitaya Smoothie有一个,可以像这样使用。

with plt.style.context(matplotx.styles.pitaya_smoothie['light']):

如果你想了解更多有关此库的信息,可以查看它的GitHub。

地址:https://github.com/nschloe/matplotx

03 量子黑色风格

QuantumBlack Labs是一家成立于2012年的公司,旨在帮助其他公司使用数据做出更好的决策。

他们使用机器学习和人工智能等先进技术来分析医疗保健、金融和交通等一系列行业的复杂数据集。

几年前,他们在GitHub上发布了自己的样式库。

地址:https://github.com/quantumblacklabs/qbstyles

要使用该主题,我们需要安装这个Python库。

# 安装

pip install qbstyles

安装好以后,就可以使用了~

from qbstyles import mpl_style

# 深色主题开

mpl_style(dark=True)

# 深色主题关

mpl_style(dark=False)

来创建一个散点图,代码如下。

from qbstyles import mpl_style

# 深色主题

mpl_style(dark=True)

# 非深色主题

mpl_style(dark=False)

# 散点图

plt.scatter(x, y, c=y2)

# 颜色

plt.colorbar(label='Y2')

# 坐标轴名称

plt.xlabel('X')

plt.ylabel('Y')

# 显示

plt.show()

返回如下两种图表结果,具体取决于你选择的是浅色还是深色主题。

 

 让我们看看深色主题的折线图是什么样子的。

# 深色主题

mpl_style(dark=True)



# 折线图

plt.plot(x, y, marker='o')

plt.plot(x, y2, marker='o')



# 坐标轴名称

plt.xlabel('X')

plt.ylabel('Y')



# 显示

plt.show()

当我们运行上面的代码时,我们会得到下面的图。

 这个库的绘图样式与Matplotx中生成的绘图相比略有缓和。

但是,它确实感觉更专业一些,尤其是浅色主题的绘图。非常适合应用在专业演示或培训课程材料中。

04 科学图表

在撰写科学期刊或会议文章时,创建一个清晰、简单且易于解释的图表至关重要。

一些期刊,例如Nature,都是需要固定的样式,方便简化读者难以理解的图表。 

这就是SciencePlots库的用武之地。 它经常被用于生成常见的科学期刊样式图表,从而使创建图表变得更加容易。 

这个库的一大优点是它使图表适合黑白打印——这仍然是研究人员的普遍做法。通过更改线条样式或确保分类数据的散点图上有不同的形状,这将使得线条很容易区分。 

如果您想探索SciencePlots中更多可用的样式,可以访问它的GitHub。

地址:https://github.com/garrettj403/SciencePlots/wiki/Gallery

运行SciencePlots库需要在你的电脑上安装LaTeX。你可以下面的地址找到有关 LaTex以及如何安装等更多详细信息。 

地址:https://www.latex-project.org/get/

在完成库的安装及LaTeX设置完成后,可以使用下面的代码创建一个科学绘图图表。

import scienceplots



with plt.style.context(['science', 'high-vis']):

    # 新建画布

    plt.figure(figsize=(6, 6))



    # 折线图

    plt.plot(x, y, marker='o', label='Line 1')

    plt.plot(x, y2, marker='o', label='Line 2')



    # 坐标轴名称

    plt.xlabel('X')

    plt.ylabel('Y')



    # 图例

    plt.legend()



    # 显示

    plt.show()

当我们运行上面的代码时,我们得到以下图表,这非常适合使用在期刊出版物中。

 让我们看看IEEE风格是什么样的。我们可以通过修改参数来创建一个。

with plt.style.context(['science', 'ieee']):

和上面的有点不一样,颜色也变了,但还是一个很好看的科学期刊图表。

 这对于搞学术研究的同学帮助非常大。

通过使用SciencePlots,不再为调整大小、颜色和线条样式而烦恼。 

05 总结

在本文中,我们看到了四个非常有用的matplotlib python库,它们可以让你的matplotlib图表更上一层楼。

这些库中的每一个都为你的绘图提供了独特的样式。 

尽管这些样式提供了很好的创意可视化效果,但你也确实需要考虑你的受众。

创建出色的数据视觉效果的全部意义在于让你的信息易于理解,并尽可能以最好的方式分享你的故事。 

                                                             --END--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/13034.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【进阶C语言】有关动态内存管理的经典笔试题(详细图文讲解)

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于C语言进阶系列,本专栏主要内容为数据的存储、指针的进阶、字符串和内存函数…

ActiveMQ使用

一、什么是消息中间件 消息中间件顾名思义实现的就是在两个系统或两个客户端之间进行消息传送 二、什么是ActiveMQ ActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的&#xff0c…

4.23、TCP状态转换(为什么四次挥手)

4.23、TCP状态转换 1.TCP状态转换图2.为什么需要四次挥手,状态转换 1.TCP状态转换图 2.为什么需要四次挥手,状态转换 2MSL(Maximum Segment Lifetime) 主动断开连接的一方, 最后进入一个 TIME_WAIT状态, 这个状态会持续: 2msl ms…

ABAP:自定义搜索帮助:可参考标准函数F4IF_SHLP_EXIT_EXAMPLE

当我们在自定义选择屏幕中, 需要写入我们自定义的搜索帮助的时候,可以通过预定义函数来实现: 实例说明: 第一步:创建搜索帮助SE11分销渠道(Z_VTWEG) 1.选择基本索引帮助: 2.选择参考表,因为这…

今天面了个腾讯拿 38K 出来的,让我见识到了基础的天花板

今天上班开早会就是新人见面仪式,听说来了个很厉害的大佬,年纪还不大,是上家公司离职过来的,薪资已经达到中高等水平,很多人都好奇不已,能拿到这个薪资应该人不简单,果然,自我介绍的…

【数据结构】堆的应用(堆排序的实现 + (向上/向下)建堆时间复杂度证明 + TopK问题(笔记总结))

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&…

Android---性能优化之图片压缩

质量压缩 质量压缩会用到 Bitmap.compress()。 public boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream); 这个方法有三个参数: Bitmap.CompressFormat format:图像的压缩格式(jpeg ,png, webp&#xf…

PS封装格式:GB28181协议RTP传输

在安防行业,有个协议是无论如何都要适配的,因为公安监控网络用的就是它,它就是:GB28181。而这份协议主要由海康制定,所以除了海康其他厂商想要适配都会少许有点儿麻烦。 1. GB28181要求的RTP流格式     首先&…

C++ 类之间的纵向关系-继承

目录 继承的基本概念 定义 使用方法 内存空间 继承下构造析构执行的顺序 构造函数 析构函数 继承的优点 继承方式 public protected private 隐藏 回顾函数重载 隐藏 父类指针指向子类对象 优点 出现的问题 类成员函数指针 普通的函数指针 类成员函数指针 类…

RK3568平台开发系列讲解(调试篇)debugfs 分析手段

🚀返回专栏总目录 文章目录 一、enable debugfs二、debugfs API三、使用示例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux 上有一些典型的问题分析手段,从这些基本的分析方法入手,你可以一步步判断出问题根因。这些分析手段,可以简单地归纳为下图: 从这…

6、索引的数据结构

3.3 常见的索引概念 索引按照物理实现方式,索引可以分为 2 种:聚簇和非聚簇索引 1、聚簇索引 5、索引的代价 空间上的代价 每建立一个索引都要为它建立一棵B树,每一棵B树的每一个节点都是一个数据页,一个页默认会占用 16KB 的存…

(排序11)排序的时间复杂度,空间复杂度,稳定性总结

图片总结 内排序时间复杂度总结 内部排序:数据元素全部放在内存中的排序。. 在内排序当中比较快的有希尔排序,堆排序,快速排序,归并排序,这四个排序的时间复杂度都是O(n*logn)。其中希尔排序的时间复杂度更加准确的来…

62. 不同路径

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1…

微电网两阶段鲁棒优化经济调度方法(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【网络编程】TCP

✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 目 录 🔮一. TCP流套接字编程💿二. TCP中的长短连接📀三. 写一个 TCP 版本的 回显服务器-客户端 🔮一. TCP流套接字编程 ServerSock…

网络视频监控如何入门?如何安装和配置、设备选择和实时监控?

网络视频监控是一种先进的安全技术,它可以通过互联网连接到远程视频服务器,使用户可以随时随地监控所关注的地点。本文将介绍网络视频监控的基础入门知识,包括安装和配置、设备选择和实时监控等方面。 一、安装和配置 在进行网络视频监控前&…

Opencv+Python笔记(四)图像的形态学处理

1.腐蚀与膨胀 膨胀用来处理缺陷问题,把缺陷填补掉,提高亮区面积; 腐蚀用来处理毛刺问题,把毛刺腐蚀掉,降低亮区面积。 腐蚀操作可以消除噪点,同时消除部分边界值,导致目标图像整体缩小。 膨胀…

C#+asp.net基于web的大学社团管理信息系统

本系统的模块是分为用户模块和管理员模块,管理员负责学生管理模块、社团管理模块、公告管理模块、留言管理模块、加入社团管理模块、活动管理模块、管理员管理模块。社团管理员则负责预约管理模块、活动报名的审核等。。 系统具有三类系统用户分别是:系统…

用于测试FDIA在现实约束下可行性的FDIA建模框架(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 信息通信技术的发展和智能设备的引入使电力系统逐渐演变为电力信息物理系统,而信息层与物理层之间的深度耦合也加剧…

【测试面试】吐血整理,大厂测试开发岗面试题(1~4面),拿下年40w...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 自动化测试面试题&…