首页 > 编程知识 正文

绘制多个子,matlab绘制多个子

时间:2023-05-05 16:28:14 阅读:252153 作者:802

最近写文章要用到子图,目标是一个大图中包含4个子图。画图可以用matplotlib,也可以用集成式的软件包seaborn。画子图最简单的方法就是用plt.subplot()函数。

plt.subplt(行,列,第几个图)函数定义要画那张子图,其中行和列定义要画几张图,如plt.subplot(2,3,1)就是定义大图含有2行3列子图,就是6张图,第三位的1表示开始画第一张图,因此后面的图一次就是plt.subplot(2,3,2),plt.subplot(2,3,3),plt.subplot(2,3,4),plt.subplot(2,3,5, plt.subplot(2,3,6).

例如:

import seaborn as snsimport matplotlib.pyplot as plt# 取用药时间的数据data_t = data_c2.loc[:,["name","onset_days","leader_1st","E_pure","sample_type"]]# 确定画布plt.figure(figsize=(16,12))# 画第1个子图plt.subplot(221)sns.stripplot(x="onset_days",y="leader_1st",data=data_t,hue="sample_type") # 使用seaborn画图plt.ylim([-1,16]) #确定y轴标签值的范围plt.yticks([0,2,4,6,8,10,12,14,16]) # 自定义确定y轴标签的值plt.xticks(rotation=-60,size=12) # x轴标签旋转60度plt.xlabel("Days of illness") # x轴标题plt.ylabel(" E1 copies/ul") # y轴标题# 画第2个子图,注释同上plt.subplot(222)sns.stripplot(x="onset_days",y="E_pure",data=data_t, hue="sample_type")plt.ylim([-1,16])plt.yticks([0,2,4,6,8,10,12,14,16])plt.xticks(rotation=-60,size=12)plt.xlabel("Days of illness")plt.ylabel(" E2 copies/ul")#画子图3plt.subplot(223)sns.stripplot(x="sample_time",y="leader_1st",data=data_t2,hue="sample_type",jitter=0.3)plt.ylim([-1,16])plt.yticks([0,2,4,6,8,10,12,14,16])plt.xticks(rotation=-60,size=12) # x轴标签旋转60度plt.xlabel("Days after treatment")plt.ylabel("E1 copies/ul")# 画子图4plt.subplot(224)sns.stripplot(x="sample_time",y="E_pure",data=data_t2, hue="sample_type",jitter=0.3)plt.ylim([-1,16])plt.yticks([0,2,4,6,8,10,12,14,16])plt.xlabel("Days after treatment")plt.ylabel("E2 copies/ul")plt.xticks(rotation=-60,size=12)# 保存图片plt.savefig('figure_1.pdf',format='pdf')

就这样,一张图一行图的画,就可以画出子图(图中后期删除了图例和标签)。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。