探索数据可视化的Matplotlib样式表
rahul105 ,2021年8月9日
文章视频书
这篇文章是作为数据科学博客马拉松的一部分发表的。
简介
Matplotlib是一个广泛用于数据可视化的库。Matplotlib提供了广泛的自定义选项。这些自定义选项可用于使图表更有吸引力和主题。定制数据的一种方式是通过手工指定个别的绘图属性。另一种方法是通过使用Matplotlib Shtyelsheets,这是在Matplotlib的1.4版本中引入的。Matplotlib有一系列预设的样式表选项,用于对绘图进行造型。
在这篇文章中,我们将学习Python中的Matplotlib样式表和一些流行的样式表选项,它们可以提高可视化的能力。
目录
- Matplotlib样式表
- FiveThirtyEight "样式表
- Dark_background "样式表
- 灰度 "样式表
- 赛博朋克 "样式表
- tableau-colorblind10 "样式表
- Seaborn-whiteegrid "样式表
- 总结
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**、b和c绘制了三个折线图。我们还通过指定**'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()
在执行这段代码时,我们得到。
图片来源--个人电脑
Fivethirtyeight "样式表
FiveThirtyEight风格是基于流行的美国博客FiveThirtyEight ,它提供经济、体育和政治分析。Matplotlib中的FiveThirtyEight 样式表在绘图区有网格线,并有粗体的X和Y刻度线。柱状图中的柱子或折线图中的折线的颜色通常是明亮的,可以区分的。
现在我们将用上面使用的相同数据绘制折线图,并尝试建立两者之间的差异。
导入库
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**、b和c绘制了三个折线图。我们还通过指定**'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()
在执行这段代码时,我们得到
图片来源--个人电脑
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()
在执行这段代码时,我们会得到。
图片来源--个人电脑
在这里,我们使用相同的列表a、b和c,它们将作为数据传入折线图。我们把'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'作为一个属性传给了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()
在执行这段代码时,我们会得到。
图片来源--个人电脑
在这里,正如所解释的,我们导入了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()
在执行这段代码时,我们会得到。
图片来源--个人电脑
在这里,我们通过在**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()
在执行这段代码时,我们会得到。
图片来源--个人电脑
在这里,我们通过在plt.style.use()方法中添加"seaborn-whitegrid"作为属性来应用Seaborn Whitegrid样式表。这组颜色使图表的信息量更大,增加了可读性。
注意:如果你在Jupyter Notebook中使用这些样式表,在从一个样式表切换到另一个样式表之前,不要忘记重新启动内核。
结论
在这篇文章中,我们学习了在Python中绘制折线图时如何使用不同的样式表。有几个样式表选项是基于其他工具或语言的,如tableau-colorblind10和seaborn-white grid,分别基于Tableau和Seaborn。虽然我们只看了六个样式表,但还有几个选项可以根据时间的要求来尝试。上面解释的样式表选项是非常流行和最广泛使用的。人们可以尝试这些样式表中的每一个,以根据给定的数据选择最佳样式表选项。
关于作者
在LinkedIn上与我联系。
你可以在LinkedIn上向我提供你的宝贵反馈。
谢谢你付出的时间!
本文所展示的媒体不属于Analytics Vidhya所有,由作者自行决定使用。
标签 :博客马拉松, 数据可视化, matplotlib, python
[
下一篇文章
探索Python中的神奇方法
](www.analyticsvidhya.com/blog/2021/0…
上一篇
在Python中开发向量自动回归模型!
](www.analyticsvidhya.com/blog/2021/0…)