记录第 22 天:绘图(XMind 与 pandas组合图)

一、XMind 绘图

元素不在多,而在运用,今天我用 Mind 绘图时体会到了这个道理。

领导想买一台 iPhone 手机,但选择太多了,有 iPhone 11,有11 pro,还有 Pro max。其中机身存储又细分为64 g,128g,256 g,512 g,可把领导看花了眼。我想,他可能需要一张全系列的对比图。

根据领导的购买决策要点,这张全系列对比图需要三个维度:型号,存储空间和价格,因此会是一张拥有一个行字段,一个列字段,一个值字段的二维展开表。我决定行字段放型号维度,列字段放存储空间维度,然后值字段放价格。说干就干,本来我是想用PPT来绘图的,不过在在我画草图的时候突然意识到,这种有设计感的数据透视表 Mind 也能做,而且更快。 其中,列字段展开可以用水平时间轴图,行字段展开可以用偏左树状图。

果然可行,我很快就初步完工了。但之后我发现一个问题,就是不同类别的信息没有在视­觉上区分开来,导致看起来有点吃力,找不到方向。

这张图和普通的数据透视图有个不同,除了主体信息外还有辅助信息,告诉读者邻近的两款型号价格差了多少,免得读者自己算。这种辅助信息如果和主体信息是一样的展现方式,很容易让人找不到方向。因此我决定把辅助信息简化显示来对比,去掉轮廓线和填充色,这­样读者就能一眼掌握本图布局了。


二、pandas 绘图

今天还做了pandas 的绘图。

今天pandas 绘图与前几天的不同的是,今天的图是合成图,包括多张图合并形成的合并图,以及多张图拼接形成的拼接图。

多张图合并为一张图就是将多张图都画在一个画框里,实现办法是把多个plt 语句放在一起运行,这样它们就能出现在一个画框里了。python 会自动把不同plt 语句下的数据认定为不同数据类别,以不同颜色的方式加以区分。相关代码包括:


数据类别图例显示plt.legend()

数据类别图例文字:label

堆积图显示:bottom

文字大小调节:fontsize

四舍五入函数:round()


另一种是多张图拼接为一张图。拼接和合并不同,合并是合并到了一张画框里,拼接的话还是多张画框,只是这些画框都是挨在一起的。Python 中以子画框的概念来完成这种安排。相关代码包括:


指定子画框位置:plt.subplot()

调整整体画框大小:plt.figure(figsize=(12,12)

设定整体画框标题:plt.suptitle()


其中,指定子画框位置函数plt.subplot(x,y,n) 函数的含义比较特殊,x,y 参数的含义为将整体画面划分为x 行,y 列的范围,n 参数代表的含义为,接下来plt 要绘制的图像出现在这个矩阵的第几块地方(从左到右,从上到下)。


此外,值得一提的是,两个plt.subplot(x,y,n) 所划定的x,y 可以不同,但是需要为包含关系。比如,前一个subplot 函数划分的是4行4列的矩阵,后一个subplot 可以划分为2行4列的矩阵。这样一来,在后一个subplot 规范下一个plt 所占据的位置就相当于前一个subplot规范下两个plt所占据的位置。

画框的合并与拼接给了pandas 图形更多的变化形式,以后可以将相关信息都集中到一起,以一种更加集约的方式展现信息。

你可能感兴趣的:(记录第 22 天:绘图(XMind 与 pandas组合图))