探索数据可视化的Matplotlib样式表

299 阅读9分钟

初学者数据可视化Pandas编程Python结构化数据

探索数据可视化的Matplotlib样式表

rahul105 ,2021年8月9日

文章视频书

这篇文章是作为数据科学博客马拉松的一部分发表的。

简介

Matplotlib是一个广泛用于数据可视化的库。Matplotlib提供了广泛的自定义选项。这些自定义选项可用于使图表更有吸引力和主题。定制数据的一种方式是通过手工指定个别的绘图属性。另一种方法是通过使用Matplotlib Shtyelsheets,这是在Matplotlib的1.4版本中引入的。Matplotlib有一系列预设的样式表选项,用于对绘图进行造型。

在这篇文章中,我们将学习Python中的Matplotlib样式表和一些流行的样式表选项,它们可以提高可视化的能力。

目录

  1. Matplotlib样式表
  2. FiveThirtyEight "样式表
  3. Dark_background "样式表
  4. 灰度 "样式表
  5. 赛博朋克 "样式表
  6. tableau-colorblind10 "样式表
  7. Seaborn-whiteegrid "样式表
  8. 总结

Matplotlib样式表

数据可视化包含了不使用一个词就能解释数据的力量。数据可以变得非常有意义。Matplotlib有一个方便的选项,可以为你的图添加一个预设,用于即兴创作经典的Matplotlib图。我们可以从matplotlib中可用的样式表的一系列选项中进行选择。这些选项可以通过执行下面的命令来访问。

plt.style.available

这给出了一个所有可用的样式表选项的列表,这些选项可以作为**plt.style.use()**中的一个属性来使用。

首先,我们将绘制一个经典的Matpltolib折线图,这将有助于我们确定经典图和即将应用样式表的图之间的区别。

导入库

import matplotlib.pyplot as plt

创建数据

a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]

我们创建了三个具有数字数据的列表,这些数据将在下一步用于绘制折线图。

指定折线图的附加属性

plt.xticks(size = 20)
plt.yticks(size = 20)

**.xticks().yticks()**方法是用来改变坐标轴刻度的默认属性的。在这里,我们将X轴和Y轴的刻度线大小增加到20。

绘制数据的折线图

plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')

我们向matplotlib.pyplot的**.figure()方法传递了figsize** 属性,以指定我们的折线图的绘图区域。我们使用matplotlib.pyplot的**.plot()方法在同一轴上为上面创建的数据列表a**、bc绘制了三个折线图。我们还通过指定**'marker'** 属性,用不同的标记来区分这三个数据列表。

把它放在一起

import matplotlib.pyplot as plt
a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]
plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')
plt.xticks(size = 20)
plt.yticks(size = 20)
plt.show()

在执行这段代码时,我们得到。

matplotlib stylesheets

图片来源--个人电脑

Fivethirtyeight "样式表

FiveThirtyEight风格是基于流行的美国博客FiveThirtyEight ,它提供经济、体育和政治分析。Matplotlib中的FiveThirtyEight 样式表在绘图区有网格线,并有粗体的XY刻度线。柱状图中的柱子或折线图中的折线的颜色通常是明亮的,可以区分的。

现在我们将用上面使用的相同数据绘制折线图,并尝试建立两者之间的差异。

导入库

import matplotlib.pyplot as plt

指定样式表类型

plt.style.use("fivethirtyeight")

通过在**plt.style.use()中添加'fivethirtyeight'作为参数,**我们可以直接使用FiveThirtyEight样式表来绘制图表。

创建数据

a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]

我们创建了三个具有数字数据的列表,这些数据将在下一步用于绘制折线图。

绘制数据的折线图

plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')

我们向matplotlib.pyplot的**.figure()方法传递了figsize** 属性,以指定折线图的绘图区域。我们使用matplotlib.pyplot的**.plot()方法在同一轴上为上面创建的数据列表a**、bc绘制了三个折线图。我们还通过指定**'marker'**属性,用不同的标记区分了这三个数据列表。

指定折线图的附加属性

plt.xticks(size = 20)
plt.yticks(size = 20)

.xticks() 和**.yticks()**方法是用来改变轴的刻度线的默认属性。在这里,我们将X轴和Y轴的刻度线大小增加到20。

把它放在一起

import matplotlib.pyplot as plt
plt.style.use("fivethirtyeight")
a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]
plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')
plt.xticks(size = 20)
plt.yticks(size = 20)
plt.show()

在执行这段代码时,我们得到

fivethirtyeight stylsheets | Matplotlib Stylesheets

图片来源--个人电脑

dark_background "样式表

dark_background"样式表是另一个流行的样式,它是基于我们今天看到的黑暗模式。应用这个样式表可以使绘图背景变成黑色,刻度线颜色变成白色,形成对比。在前台,条形图和/或线形图是灰色的,以增加图形的美感和可读性。

现在我们将用上面使用的相同数据绘制折线图,并尝试建立前两者之间的差异。

import matplotlib.pyplot as plt
plt.style.use("dark_background")
a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]
plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')
plt.xticks(size = 20)
plt.yticks(size = 20)
plt.show()

在执行这段代码时,我们会得到。

dark_background | Matplotlib Stylesheets

图片来源--个人电脑

在这里,我们使用相同的列表abc,它们将作为数据传入折线图。我们把'dark_background'作为一个属性传入**plt.style.use()**方法。这将使用深色背景样式表。

grayscale "样式表

灰度 "样式表没有任何颜色的参与,因此得到了它的名字。这种样式表类似于复古的黑白报纸,其中没有任何颜色。当我们有多条线或条形图显示数据时,这种样式表可能会使图表变得混乱,因为人们只能通过条形图或线的颜色密度来判断数据的等级。

现在,我们将用上面使用的相同数据绘制折线图,并尝试建立前三者之间的差异。

import matplotlib.pyplot as plt
plt.style.use("grayscale")
a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]
plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')
plt.xticks(size = 20)
plt.yticks(size = 20)
plt.show()

在执行这段代码时,我们会得到。

grayscale stylesheets

图片来源--个人电脑

在这里,我们把'grayscale'作为一个属性传给了plt.style.use()方法,以应用灰度样式表。显而易见,在我们尝试根据线条的密度进行区分之前,是很难区分这些线条的。

赛博朋克 "样式表

赛博朋克 "样式表是基于流行的虚构世界 "赛博朋克"。应用这个样式,剧情会有一个深蓝色的网格背景和霓虹色的线条/条。这个样式表在列表plt.style.available中不容易找到。但我们可以导入mplcyberpunk库来使用 "cyberpunk"样式表。你可以在这里了解更多关于赛博朋克风格的绘图。

现在,我们将用上面使用的相同数据绘制折线图,并尝试建立之前图表之间的差异。

import matplotlib.pyplot as plt
import mplcyberpunk
plt.style.use("cyberpunk")
a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]
plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')
plt.xticks(size = 20)
plt.yticks(size = 20)
plt.show()

在执行这段代码时,我们会得到。

cyberpank stylesheets

图片来源--个人电脑

在这里,正如所解释的,我们导入了mplcyberpunk库,它允许我们使用 "cyberpunk "样式表。因此,在导入 mplcyberpunk 库后,我们使用了'cyberpunk'样式表。

tableau-colorblind10 "样式表

tableau-colorblind10样式表是基于广泛使用的商业智能工具Tableau。应用这个样式使我们的图看起来像在Tableau中创建的图。符号的字体被改为Tableau的默认字体,线/条的颜色被改为Tableau 10,这是Tableau中可用的调色板,包含了一组对色盲友好的粉色。

现在,我们将用上面使用的同样的数据绘制折线图,并尝试建立之前的图表之间的差异。

import matplotlib.pyplot as plt
plt.style.use("tableau-colorblind10")
a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]
plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')
plt.xticks(size = 20)
plt.yticks(size = 20)
plt.show()

在执行这段代码时,我们会得到。

tableau-colorblind10 | tableau-colorblind10

图片来源--个人电脑

在这里,我们通过在**plt.style.use()**中添加'tableau-colorblind10'属性,将Tableau 10调色板应用到图表中。Tableau图看起来很有美感,可以用来让色盲的人友好地走出图。

seaborn-whiteegrid "风格

我们可以通过使用'seaborn-whitegrid'样式表在我们的图表中使用流行的Seaborn库的预设。顾名思义,该样式表带有白色背景和网格,从而增加了图表的可读性。线条/条的颜色选择来自Seaborn的内部调色板,因此使图表非常令人愉悦。

现在,我们将用上面使用的相同数据绘制折线图,并尝试建立与之前图表之间的差异。

import matplotlib.pyplot as plt
plt.style.use("seaborn-whitegrid")
a = [2, 3, 4, 3, 4, 5, 3]
b = [4, 5, 5, 7, 9, 8, 6]
c = [1, 3, 9, 5, 2, 1, 1]
plt.figure(figsize = (20,8))
plt.plot(a, marker='o')
plt.plot(b, marker='v')
plt.plot(c, marker='s')
plt.xticks(size = 20)
plt.yticks(size = 20)
plt.show()

在执行这段代码时,我们会得到。

seaborn-whitegrid

图片来源--个人电脑

在这里,我们通过在plt.style.use()方法中添加"seaborn-whitegrid"作为属性来应用Seaborn Whitegrid样式表。这组颜色使图表的信息量更大,增加了可读性。

注意:如果你在Jupyter Notebook中使用这些样式表,在从一个样式表切换到另一个样式表之前,不要忘记重新启动内核

结论

在这篇文章中,我们学习了在Python中绘制折线图时如何使用不同的样式表。有几个样式表选项是基于其他工具或语言的,如tableau-colorblind10和seaborn-white grid,分别基于Tableau和Seaborn。虽然我们只看了六个样式表,但还有几个选项可以根据时间的要求来尝试。上面解释的样式表选项是非常流行和最广泛使用的。人们可以尝试这些样式表中的每一个,以根据给定的数据选择最佳样式表选项。

关于作者

LinkedIn上与我联系。

这里Medium上查看我的其他文章

你可以在LinkedIn上向我提供你的宝贵反馈。

谢谢你付出的时间!

本文所展示的媒体不属于Analytics Vidhya所有,由作者自行决定使用。

你也可以在我们的手机APP上阅读这篇文章 Get it on Google Play

标签 :博客马拉松, 数据可视化, matplotlib, python

[

下一篇文章

探索Python中的神奇方法

](www.analyticsvidhya.com/blog/2021/0…

上一篇

在Python中开发向量自动回归模型!

](www.analyticsvidhya.com/blog/2021/0…)

rahul105