pythonmatplotlib使用教程,matplotlib源码
背景
桑吉图作为一种表达数据流方向的可视化方法,广泛应用于商业数据分析、地理可视化和生物医学领域。比如在基因组学领域,有研究用桑吉图来表达生物分子之间的调控关系。
目前大部分三吉图软件包(如plotly等。)大多调用d3.js,允许一些交互操作,但是安装使用设置参数不方便。
Matplotlib是python中最流行的可视化库,它提供了大量的操作接口。它画出来的图可以达到文章发表的水平,美观程度不亚于ggplot2。但是matplotlib并没有提供一些高级的绘图函数接口,用户需要非常熟悉matplotlib才能绘制出高度定制化的图纸。
一些高级的封装库,比如Seaborn,封装了matplotlib,有助于降低用户使用和绘制高级图片的难度,允许用户后期调用matplotlib api自由修改。但是seaborn还是没有画出Sanjitu。
因此,我基于matplotlib开发了一个简单的桑树图绘制程序pysankey2,可以绘制多层桑树图,并且允许用户自由设置一些参数。熟悉matplotlib也可以后期修图。
下面介绍如何使用pysankey2绘制桑吉图。
固定
下载完成后,打开操作系统的命令行界面,cd到存放压缩包的目录,然后使用pip完成安装:
cd路径/到/你的/目录
pip安装pysankey2-0.1.0.zip
用3行代码画出2层桑吉图。
我们根据内置数据集快速绘制:
从pysankey2.datasets导入load_fruits
df=load_fruits()
df.head()
image.png
如您所见,内置数据集的每一行都代表一个连接对。如果有几个连接对,则只有几条线。其实这也是pysankey2的输入要求。
将matplotlib.pyplot作为plt导入
进口熊猫作为pd
从pysankey2导入sankey
## colorMode=global 表示设置框的颜色全局一致。
# #例:橙色无论在哪个楼层都使用相同的颜色。
sky=Sankey(df,colorMode=global )
fig,ax=sky.plot()
image.png
当然字体好像有点小,颜色也不太好看。让我们做一个微调,将颜色改为Paste1配色方案,并使用stripColor=left 将山治条的颜色设置为与左侧方框的颜色相同,同时将字体调高一点:
将matplotlib.pyplot作为plt导入
进口熊猫作为pd
从pysankey2.datasets导入load_fruits
从pysankey2.utils导入setColorConf
从pysankey2导入sankey
df=load_fruits()
fruits=list(set(df.layer1)。union(set(df.layer2)))
#指定了颜色。
#在这里,我们使用“彩色1”色图(一个害羞但新鲜的调色板:)。
#查看matplotlib cmap了解更多色彩映射表:
# https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html
colors=setColorConf(len(fruits),colors= Pastel1 )
cls_map=dict(zip(水果,颜色))
# set stripColor=left
sky=Sankey(df,colorDict=cls_map,colorMode=global ,stripColor=left )
#设置更大的字体
fig,ax=sky . plot(text _ kws={ size :20 })
image.png
是不是好多了~总共只有6行代码。
画一个三层桑吉图。
df=load _ countrys()
sky _ auto _ global _ colors=Sankey(df,colorMode=global )
fig,ax=sky _ auto _ global _ colors . plot(text _ kws={ size :15 })
效果如下:
image.png
其他参数
如果您有任何问题,您可以直接在github页面上提问或通过电子邮件联系szjshuffle@foxmail.com。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。