python - 如何在seaborn图表中循环执行子图

标签 python loops graph seaborn

我有生成四个子图的代码,但我想通过循环生成这些图表,目前我正在按照这段代码生成图表 代码:

plt.figure(figsize=(20, 12))
plt.subplot(221)
sns.barplot(x = 'Category', y = 'POG_Added', data = df)
xticks(rotation = 90)
plt.xticks(size = 11)
plt.yticks(size = 11)
plt.xlabel("Category",size = 13)
plt.ylabel("POG_Added",size = 13)

plt.subplot(222)
sns.barplot(x = 'Category', y = 'Live_POG', data = df)
xticks(rotation = 90)
plt.xticks(size = 11)
plt.yticks(size = 11)
plt.xlabel("Category",size = 13)
plt.ylabel("Live_POG",size = 13)

plt.subplot(223)
sns.lineplot(x = 'Category', y = 'D01_CVR', data = df)
#sns.barplot(x = 'Category', y = 'D2-08-Visits', data = df,label='D2-08_Visits')
xticks(rotation = 90)
plt.xticks(size = 11)
plt.yticks(size = 11)
plt.xlabel("Category",size = 13)
plt.ylabel("D01_CVR",size = 13)

plt.subplot(224)

plt.xticks(rotation='vertical')
ax = sns.barplot(x='Category',y='D2-08-Units',data=df)
ax2 = ax.twinx()
ax2.plot(ax.get_xticks(), df["D01_CVR"], alpha = .75, color = 'r')

plt.subplots_adjust(hspace=0.55,wspace=0.55)
plt.show()

enter image description here

最佳答案

我是这样做的:

import numpy as np
import matplotlib.pyplot as plt

data = [np.random.random((10, 10)) for _ in range(6)]

fig, axs = plt.subplots(ncols=3, nrows=2, figsize=(9, 6))
for ax, dat in zip(axs.ravel(), data):
    ax.imshow(dat)

这会产生:

matplotlib output

这个想法是 plt.subplots()生成 Axes 的数组对象,这样你就可以循环它并在循环中绘制你的图。在这种情况下我需要ndarray.ravel()因为axs是一个二维数组。

关于python - 如何在seaborn图表中循环执行子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58235445/

相关文章:

JavaScript/表单

python - 将单位添加到 MatPlotLib 中的 yaxis 标签

python - 如何使用父类中的对象最好地初始化子类的对象?

python - 在 Python 3 中从 CGI 输出二进制数据

c# - 在c#中填充多维数组而不用单值循环

Matlab,if条件不循环

python - Pygame - 实体移动限制 - 碰撞检测

python - Pathlib - 加入 n 个 parent

r - 如果我在分段函数(ggplot2)上从 >= 更改为 >,为什么我的连续图会突然发生变化?

haskell - 有效地解释抽象语法图