Matplotlib:用并行循环创建绘图&seaborn

2024-05-15 21:50:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用并行循环创建一些内核图。当我使用条形图时,这个循环可以工作,但是当我使用内核绘图时,这个循环就会出错。我是python新手,所以我认为我遗漏了一些非常明显的东西-有什么建议吗?谢谢!在

哦和len(schools) = 3

#the kernel plot
fig = plt.figure(facecolor='white')
gs1 = GridSpec(1,len(schools))
sp1 = [plt.subplot(gs1[0,i]) for i in range(len(schools))]
colors = ["red", "blue", "green"]
schools2 = [[data1....],[data2....],[data3......]]
for ax, i in zip(sp1, range(len(schools))):
    ax = sns.kdeplot(schools2[i], bw=.5, color = colors[i], lw=1.8, vertical=True, alpha=.5)

一。在

^{pr2}$

Tags: in绘图forlenrangepltax内核
1条回答
网友
1楼 · 发布于 2024-05-15 21:50:34

对于直接使用matplotlib绘图函数,执行plt.bar(...)和{}是有区别的。在前一种情况下,绘图将在“当前活动”轴上绘制,而在后一种情况下,绘图将始终转到绑定到ax变量的轴上。在

类似地,对于seaborn绘图功能,如果您只是编写,例如sns.kdeplot(...),它将绘制到“当前活动”轴上。为了使用matplotlib面向对象的接口来控制绘图的结束位置,大多数[1]seaborn函数都使用一个ax参数,并将axis对象sns.kdeplot(..., ax=ax)传递给该参数。在

  1. 我说的大部分是因为像kdeplotviolinplot,以及其他许多绘制到特定轴上的函数,以及更复杂的函数,如lmplotfactorplot等等,它们是完整的图形函数,不能分配给特定的轴或图形。前面的任何函数都将接受ax参数。在

相关问题 更多 >