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

news2024/10/6 22:28:49

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--

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移远通信笔试题

限时60分钟 1.下列关于栈叙述正确的是 A A) 栈顶元素最先能被删除 B)栈顶元素最后才能被删除 C)栈底元素永远不能被删除 D)以上三种都不对 在栈中,最后被压入的元素总是在栈顶上方,而栈顶元素总是最先被弹出的元…

面试题30天打卡-day09

1、一条 SQL 语句在 MySQL 中的执行过程是怎样的? client 根据SQL语法,定义好SQL语句,向MySQL建立连接连接器:client 首先要与 MySQL 建立连接,这就需要一个连接器,负责与 client 建立连接、权限验证、管理…

User accounts with SSH access to Amazon EC2 Linux instance

文章目录 一、Need to prepare ssh remote connection tool二、Enter the command and submit the pem file三、Access successful and operation performed 一、Need to prepare ssh remote connection tool For example, using XSHELL 二、Enter the command and submit t…

云通讯服务商有哪些?

随着语聊、视频通话、直播等行业的兴起,云通讯厂商的作用越来越凸显,解决画面卡顿、解决声音延迟以及基于互动领域更多的行业解决方案已经成为开发者和企业所需。 从长远来看,随着5G的不断普及,低延迟、高质量的网络环境不断催生线…

单片机课设和电子设计大赛仿真分享

兄弟们,我这有一堆单片机课设和电路图仿真,大家可以看一下 这是所有项目的一部分。 这是项目的里面的资料。 还有一堆仿真,这个只有仿真 下面的字是凑字数的,就是为了更好让大家看到这个福利 当今社会是一个电子信息技术飞速发展的…

头歌c语言实训项目-综合案例课外练习:火柴游戏

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 第1关:火柴游戏1 题目: 代码思路: 代码表示: 第2关&…

winform电影售票系统

一、前言 C#winform电影售票系统sqlserver数据库 主要技术: 基于C#winform架构和sql server数据库的电影售票系统 随着互联网高速发展,人们的娱乐生活也逐渐丰富,最普遍的娱乐休闲方式之一就是到电影院看电影,那么传统的电影订票…

数智化招采平台系统中智能用印解决方案,从细节上降本增效

随着现代市场的发展,企业规模的不断扩大,分支机构众多 ,用印管理在异地使用 、签字时带来了不便。在招标采购领域中,用印的智慧化管理模式已逐渐成为企业缩短信息传递时间、提高采购工作效率、实现降本增效的重要手段之一 。 经过…

JFrog Artifactory的数据备份与恢复教程

ps:码字,截图不容易,如果对您有帮助,请点个赞,评论下,谢谢 目录 一、数据备份 1、使用管理员账号登录JFrog的后台,点击“Backups”选项 2、查看备份规则 3、修改备份规则 4、测试备份规则是否…

管理后台项目-03-SPU列表-增删改SPU-获取SKU

目录 1-spu模块分析 2-spu三级分类和列表页面 3-添加修改spu 3.1-点击新增和修改逻辑分析和功能实现 3.2-图片上传逻辑分析 3.3-销售属性逻辑分析 3.4-保存spu信息 1-spu模块分析 我们看到spu组件模块,上面是三级联动,这个我们已经在上一篇属性那…

vue+oss实现服务端签名后直传的图片上传功能

vueoss实现服务端签名后直传的图片上传功能 vueoss实现服务端签名后直传的图片上传功能 vueoss实现服务端签名后直传的图片上传功能前言一、java服务端签名接口设计二、Vue element UI的upload图片上传三、前端直传oss可能出现跨域问题四、服务端签名流程总结 前言 基于Post …

Java基层卫生健康云源码 医院HIS信息管理系统源码

近年来,随着互联网技术的快速发展,云计算技术也得到了广泛的应用。云计算技术不仅可以提高计算效率,还可以实现资源的共享和协同,为基层卫生健康事业的发展提供了新的思路和机遇。 基层卫生健康云系统是指利用云计算技术&#xf…

【Java|golang】1026. 节点与其祖先之间的最大差值---避坑,注意:golang中同一个包下的全局变量只加载一次。

给定二叉树的根节点 root,找出存在于 不同 节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为 A 是 B…

环境变量的初始

目录 : 1.引出环境变量 2. 简单使用一下环境变量 3.环境变量的概念 4.本地变量 5.环境变量的相关命令 6.环境变量获取和操作的方式 7. getenv(最常用的程序获取环境变量的方式) 8.环境变量的全局属性 -------------------------------------…

擎创动态 | 二等奖!擎创携手国家电网喜获“浪潮信息杯”绝佳成绩

近日,2022电力行业信息化年会于湖南省长沙市圆满落下帷幕。据悉,今年是电力行业信息化年会举办的第二十周年,年会的主题为“低碳数字新动力 电力转型新发展”,紧密围绕“十四五”数据经济发展,“双碳”战略、新型电力系…

10分钟学会使用Jmeter工具做接口自动化测试

Jmeter接口自动化测试项目实战视频教程地址:https://www.bilibili.com/video/BV1e44y1X78S/? 目录:导读 引言 一、软件下载 二、软件安装及设置环境变量 三、Jmeter做接口自动化测试的步骤 四、接口依赖的解决 引言 大家好!我是不二。…

《Linux基础》08. 日志管理 · 备份与恢复

Linux基础 - 08 1:日志管理1.1:系统常用日志1.2:日志管理1.2.1:日志服务1.2.2:配置文件1.2.3:自定义日志管理 1.3:日志轮替1.3.1:轮替服务1.3.2:配置文件1.3.3&#xff1…

顺序表(更新版)——“数据结构与算法”

各位CSDN的uu们你们好呀,今天小雅兰又来更新新专栏啦,其实之前我就已经写过了顺序表的内容,只是之前的内容不是最新版的顺序表,现在,我来更新一下最新版的顺序表,下面,就让我们进入更新版的顺序…

开发常用的 Linux 命令1(文件和目录)

开发常用的 Linux 命令汇总1(文件和目录) 作为开发者,Linux是我们必须掌握的操作系统之一。因此,在编写代码和部署应用程序时,熟练使用Linux命令非常重要。这些常用命令不得不会,掌握这些命令,…