大家好,欢迎来到IT知识分享网。
科研常用AI(Adobe Illustrator,AI)拼接多张图,这里介绍个轻量级的Python工具。
粉丝问题提出
如果有以下4张图,如何把它们拼接在一张图中,
粉丝问题解决
通过Python patchworklib即可搞定,patchworklib通过|(代表左右排版)、/(代表上下排版)
轻松实现图形排列。
代码如下,
import matplotlib import seaborn as sns import patchworklib as pw penguins = pd.read_csv('./sns_data/penguins.csv') titanic = pd.read_csv('./sns_data/titanic.csv') pw.overwrite_axisgrid() # 使用pw.load_seagorngrid,必须先开启pw.overwrite_axisgrid方法 # 核密度图 g0 = sns.displot( penguins, x="鳍长 (毫米)", kind='kde', hue="岛屿", fill=True, multiple="layer", palette=["#006a8e", "#b1283a", "#a8a6a7"], ) g0 = pw.load_seaborngrid(g0, label="g0") #每个子图使用使用pw.load_seagorngrid方法 # 分组boxplot g1 = sns.catplot(data=titanic, x="登船港口", y="年龄", hue="性别", col="船票等级", row="获救情况", width=0.7, linewidth=0.6, kind="box", palette=["#006a8e", "#b1283a"]) g1 = pw.load_seaborngrid(g1, label="g1", figsize=(6, 6)) #每个子图使用使用pw.load_seagorngrid方法 # 边际图 g2 = sns.pairplot(data=penguins, hue="性别", palette=["#006a8e", "#b1283a"], height=1.5, aspect=1, plot_kws=dict(color="#7995c4", alpha=1), diag_kws=dict(color="#7995c4", alpha=1)) g2 = pw.load_seaborngrid(g2, label="g2") # 矩阵图 g3 = sns.JointGrid(data=penguins, x='喙长 (毫米)', y='喙深 (毫米)', hue='性别', palette=["#006a8e", "#b1283a"]) g3.plot(sns.kdeplot, sns.histplot, alpha=.5, fill=True) g3 = pw.load_seaborngrid(g3, label="g3") #每个子图使用使用pw.load_seagorngrid方法 #个性化设置 g0.case.set_title('图 A', x=0, y=1.0, loc="right") g1.case.set_title('图 B', x=0, y=1.0, loc="right") g2.case.set_title('图 C', x=0, y=1.0, loc="right") g3.case.set_title('图 D', x=0, y=1.0, loc="right") #拼图 patch0123 = (g0 | g1) / (g2 | g3) patch0123.savefig() #类似plt.show()
看下效果,
patch3210 = (g3 | g2) / (g1 | g0) #换个顺序 patch3210.savefig()
patch3012 = (g3 | g0 | g1 ) / g2 #再换个顺序 patch3012.savefig()
❤️❤️分享一份原创“Python保姆级可视化教程”:12.3万字+530张图形+8000行代码+详细代码注释+学习交流群👉👉这个工具缓解了我的可视化焦虑
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/149617.html