4个Python库来美化你的Matplotlib图表! 而且每个方法都可以使用两行代码来实现,一条import语句和一条Matplotlib的使用语句。 尽管这些库非常适合创建酷炫的图表,但是你还是需要了解你的目标受众以及可能遇到的视觉问题,比如色盲等情况。 下面就让我们来一起看看吧! 在开始使用探索Matplotlib图表之前,先创建一些虚拟数据,用来生成图表。 几行代码轻松搞定。 importnumpyasnp 生成x值 xnp。linspace(0,10,20) 生成y值 ynp。sin(x) y2np。cos(x) 01赛博朋克风格mplcyberpunk 赛博朋克是一种科幻小说的子类型,以其反乌托邦、技术先进的世界和反文化态度而闻名。 场景通常以未来主义风格描绘,经常包括霓虹灯及明亮、鲜艳的色彩等元素。 比如,在制作海报或者是信息图表时,你需要额外的元素来吸引读者。这便是赛博朋克风格可以发挥作用的地方。 但是,你也要知道,它在为出版物创建图表或在论文中使用时可能会被视为不专业,并且可能不适合视觉有问题的读者。 要开始使用这个主题,需要先安装mplcyberpunk库。 安装 pipinstallmplcyberpunk 使用赛博朋克主题,只需要调用plt。style。use(),并传入参数cypberpunk即可。 使用plt。scatter()绘制散点图。为了使我们的散点发光,还需要调用makescatterglow()函数。 importmplcyberpunk importmatplotlib。pyplotasplt 使用赛博朋克风样式 plt。style。use(cyberpunk) plt。figure(figsize(8,8)) 散点图1 plt。scatter(x,y,markero) mplcyberpunk。makescatterglow() 散点图2 plt。scatter(x,y2,markero,clime) mplcyberpunk。makescatterglow() 坐标轴名称 plt。xlabel(XAxis) plt。ylabel(YAxis) 显示 plt。show() 运行上面的代码时,可以得到下图。 将赛博朋克主题应用到折线图中。为了使线条发光,我们可以调用makelinesglow()。 使用赛博朋克风样式 plt。style。use(cyberpunk) plt。figure(figsize(8,8)) 折线图 plt。plot(x,y,markero) plt。plot(x,y2,markero,clime) 发光效果 mplcyberpunk。makelinesglow() 坐标轴名称 plt。xlabel(XAxis) plt。ylabel(YAxis) 显示 plt。show() 运行完成,将返回带有霓虹灯线条的图表。 我们还可以将图表效果更进一步,在线条和X轴之间添加渐变填充。 使用赛博朋克风样式 plt。style。use(cyberpunk) plt。figure(figsize(8,8)) 折线图 plt。plot(x,y,markero) plt。plot(x,y2,markero,clime) 发光效果渐变填充 mplcyberpunk。addgradientfill(alphagradientglow0。5,gradientstartzero) 坐标轴名称 plt。xlabel(XAxis) plt。ylabel(YAxis) 显示 plt。show() 这便创造了一个非常有趣的效果。 当然这个赛博朋克库还有其他的美化参数,大家可以去GitHub上查看使用。 地址:https:github。comdhaitzmplcyberpunk 02Matplotx matplotx库提供了一种简单的方法可以快速对matplotlib图表进行美化。 它包含几个可以便捷使用,且可应用于任何matplotlib图表的主题。 在深色主题的JupyterNotebook或VSCode中处理图表时,出现亮白色的图表可能会有些许刺眼。 为了减少这种影响,我们可以将样式设为深色主题。但是,这需要好几行代码才能实现。 正如接下来所看到的,Matplotx使这个过程变得更加容易。由于它包含多个主题,我们可以轻松找到一个与VSCode主题相匹配的。 通过打开终端命令提示符并运行以下命令,可以将Matplotx安装到你的Python环境中去。 安装 pipinstallmatplotx 安装好以后,可以使用with语句来调用plt。style。context和传入matplotx。styles。 在这里,我们可以选择众多的可用主题。比如非常流行的Dracula主题。 importmatplotx withplt。style。context(matplotx。styles。dracula): 散点图 plt。scatter(x,y,cy2) 颜色类型 plt。colorbar(labelY2) 坐标轴名称 plt。xlabel(X) plt。ylabel(Y) 显示 plt。show() 运行代码,得到下图。 其中matplotx中有许多不同的样式,具体情况如下。 下面让我们用PitayaSmoothie主题来创建一个折线图。 由于有多个子主题,我们需要使用方括号访问它们。 在这个例子中,我们有一个深色主题,所以我们需要传入dark参数才能使用。 withplt。style。context(matplotx。styles。pitayasmoothie〔dark〕): 折线图 plt。plot(x,y,markero) plt。plot(x,y2,markero) 坐标轴名称 plt。xlabel(X) plt。ylabel(Y) 显示 plt。show() 当我们运行上面的代码时,我们会得到下面这个折线图。 当然也有许多浅色主题。比如PitayaSmoothie有一个,可以像这样使用。 withplt。style。context(matplotx。styles。pitayasmoothie〔light〕): 如果你想了解更多有关此库的信息,可以查看它的GitHub。 地址:https:github。comnschloematplotx 03量子黑色风格 QuantumBlackLabs是一家成立于2012年的公司,旨在帮助其他公司使用数据做出更好的决策。 他们使用机器学习和人工智能等先进技术来分析医疗保健、金融和交通等一系列行业的复杂数据集。 几年前,他们在GitHub上发布了自己的样式库。 地址: https:github。comquantumblacklabsqbstyles 要使用该主题,我们需要安装这个Python库。 安装 pipinstallqbstyles 安装好以后,就可以使用了 fromqbstylesimportmplstyle 深色主题开 mplstyle(darkTrue) 深色主题关 mplstyle(darkFalse) 来创建一个散点图,代码如下。 fromqbstylesimportmplstyle 深色主题 mplstyle(darkTrue) 非深色主题 mplstyle(darkFalse) 散点图 plt。scatter(x,y,cy2) 颜色 plt。colorbar(labelY2) 坐标轴名称 plt。xlabel(X) plt。ylabel(Y) 显示 plt。show() 返回如下两种图表结果,具体取决于你选择的是浅色还是深色主题。 让我们看看深色主题的折线图是什么样子的。 深色主题 mplstyle(darkTrue) 折线图 plt。plot(x,y,markero) plt。plot(x,y2,markero) 坐标轴名称 plt。xlabel(X) plt。ylabel(Y) 显示 plt。show() 当我们运行上面的代码时,我们会得到下面的图。 这个库的绘图样式与Matplotx中生成的绘图相比略有缓和。 但是,它确实感觉更专业一些,尤其是浅色主题的绘图。非常适合应用在专业演示或培训课程材料中。 04科学图表 在撰写科学期刊或会议文章时,创建一个清晰、简单且易于解释的图表至关重要。 一些期刊,例如Nature,都是需要固定的样式,方便简化读者难以理解的图表。 这就是SciencePlots库的用武之地。它经常被用于生成常见的科学期刊样式图表,从而使创建图表变得更加容易。 这个库的一大优点是它使图表适合黑白打印这仍然是研究人员的普遍做法。通过更改线条样式或确保分类数据的散点图上有不同的形状,这将使得线条很容易区分。 如果您想探索SciencePlots中更多可用的样式,可以访问它的GitHub。 地址: https:github。comgarrettj403SciencePlotswikiGallery 运行SciencePlots库需要在你的电脑上安装LaTeX。你可以下面的地址找到有关LaTex以及如何安装等更多详细信息。 地址:https:www。latexproject。orgget 在完成库的安装及LaTeX设置完成后,可以使用下面的代码创建一个科学绘图图表。 importscienceplots withplt。style。context(〔science,highvis〕): 新建画布 plt。figure(figsize(6,6)) 折线图 plt。plot(x,y,markero,labelLine1) plt。plot(x,y2,markero,labelLine2) 坐标轴名称 plt。xlabel(X) plt。ylabel(Y) 图例 plt。legend() 显示 plt。show() 当我们运行上面的代码时,我们得到以下图表,这非常适合使用在期刊出版物中。 让我们看看IEEE风格是什么样的。我们可以通过修改参数来创建一个。 withplt。style。context(〔science,ieee〕): 和上面的有点不一样,颜色也变了,但还是一个很好看的科学期刊图表。 这对于搞学术研究的同学帮助非常大。 通过使用SciencePlots,不再为调整大小、颜色和线条样式而烦恼。