我们都知道,普通人对视觉信息的反应比单独的文本反应要好得多。通常情况下,Matplotlib 生成的图表非常完美,但很无聊。观察这些图表并不是很有趣。
在本教程中,我们将努力使传统图像变得更加有趣和幽默,以 XKCD 为例。
网络漫画xkcd由美国作家Randall Munroe于2005年创立。xkcd是每周更新的网络漫画。它是最受欢迎的漫画书之一。我们将在这里尝试以xkcd漫画的风格来绘制我们的情节!
加载库和数据
我们将首先导入必要的库,然后继续将数据导入到程序中。在这里,我们加载 Tips 数据集并输出其最初的五行。
1
2
3
4
5
6
7
8
|
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from seaborn import load_dataset tips = load_dataset( "tips" ) tips.head() |
示例 1 – 条形图
条形图是数据的图形表示形式,其中可以使用特定形式(例如矩形)突出显示类别。条形图中条形的长度和高度显示数据集中数据的分布。
另请阅读:Python 条形图 – 在 Python 中可视化分类数据
使用 sns.countplot 函数绘制列中唯一值的计数,我们可以生成基本的条形图。
1
2
3
4
|
plt.figure(facecolor = "W" ,figsize = ( 10 , 5 )) plt.title( "Bar Plot - Normal" ) sns.countplot(tips[ 'sex' ]) plt.show() |
为了使情节变得漫画化,我们需要在整个代码之前添加 plt.xkcd 方法。
示例 2:箱线图
箱线图是数据集数据分布的度量。它将数据集分成四分位数。该图描绘了数据集的最小值、最大值、中值、第一四分位数和第三四分位数。
另请阅读:箱线图:您需要了解的一切
使用下面的代码,我们可以使用 sns.boxplot 函数生成箱线图。
plt.figure(facecolor="W",figsize=(10,5)) plt.title("BoxPlot - Normal") sns.boxplot(x = "day", y = "total_bill", hue = "sex", data = tips); plt.show() |
为了制作漫画情节,我们需要在整个代码之前添加 plt.xkcd 方法。
1
2
3
4
5
|
plt.xkcd() plt.figure(facecolor = "W" ,figsize = ( 10 , 5 )) plt.title( "BoxPlot - Comic" ) sns.boxplot(x = "day" , y = "total_bill" , hue = "sex" , data = tips); plt.show() |
示例 3 – 正弦波
在此示例中,我们将利用 linspace 和 sin 函数生成正弦波图的值,如下面的代码所示。
|
1
2
3
4
|
plt.figure(facecolor = "W" ,figsize = ( 10 , 5 )) plt.plot(np.sin(np.linspace( 0 , 10 ))) plt.title( 'A simple Sine Wave - Normal' ) plt.show() |
为了制作漫画情节,我们需要在整个代码之前添加 plt.xkcd 方法。
1
2
3
4
5
|
plt.xkcd() plt.figure(facecolor = "W" ,figsize = ( 10 , 5 )) plt.plot(np.sin(np.linspace( 0 , 10 ))) plt.title( 'A simple Sine Wave - Comic' ) plt.show() |
示例 4 – 饼图
Matplotlib 的 pie() 函数支持饼图。plt.pie() 方法可用于生成绘图。以下代码生成饼图:
1
2
3
4
5
6
7
8
9
|
labels = 'Python' , 'C++' , 'Ruby' , 'Java' sizes = [ 215 , 130 , 245 , 210 ] colors = [ 'gold' , 'yellowgreen' , 'lightcoral' , 'lightskyblue' ] explode = ( 0.1 , 0 , 0 , 0 ) plt.figure(facecolor = "W" ,figsize = ( 10 , 5 )) plt.pie(sizes, explode = explode, labels = labels, colors = colors,autopct = '%1.1f%%' ) plt.axis( 'equal' ) plt.title( "Pie Chart - Normal" ) plt.show() |
为了使情节变得漫画化,我们需要在整个代码之前添加 plt.xkcd 方法。
1
2
3
4
5
6
7
8
9
10
|
labels = 'Python' , 'C++' , 'Ruby' , 'Java' sizes = [ 215 , 130 , 245 , 210 ] colors = [ 'gold' , 'yellowgreen' , 'lightcoral' , 'lightskyblue' ] explode = ( 0.1 , 0 , 0 , 0 ) plt.xkcd() plt.figure(facecolor = "W" ,figsize = ( 10 , 5 )) plt.pie(sizes, explode = explode, labels = labels, colors = colors,autopct = '%1.1f%%' ) plt.axis( 'equal' ) plt.title( "Pie Chart - Comic" ) plt.show() |
结论
我希望您在 xkcd 的帮助下喜欢本教程,从无聊的标准可视化到有趣的漫画可视化。我还向您推荐以下教程:
感谢您的阅读!快乐学习!😃