gpt4 book ai didi

python - 显示列值的散点图标题

转载 作者:行者123 更新时间:2023-12-02 16:21:05 24 4
gpt4 key购买 nike

我正在使用我的数据框示例的回归制作自动散点图

enter image description here

我想在 Column1 的单独散点图组中建立 Column2 到 Column3 和 Column2 到 Column4 之间的相关性。比如会有3个Column2到Column3的散点图,每个散点图的标题是A、B、C

对于绘图,我使用的是 pandas 散点图,例如:

df.groupby('Column1').plot.scatter(x='Column2',y='Column3')

散点图正好返回 3 个图,但我想知道如何根据 Column1 的分组添加图表标题以及如何添加回归线。我还没有使用 seaborn 或 matplotlib,因为它们让我很困惑,所以如果你能解释更多,我将不胜感激 :))

编辑 1

抱歉之前没说清楚。我的代码之前运行良好,但输出如下。

enter image description here

还可以,但很难看哪个地 block 属于哪个组。因此我的意图是创造这样的东西

enter image description here

编辑 2

向所有乐于助人的人致敬。尤其是Caina帮了我很多,也对他说声谢谢。

这是他根据评论中的几处添加编写的代码。

fig, axes = plt.subplots(1, df.Column1.nunique(), figsize=(12,8))

groups = df.groupby('Column1')
fig.tight_layout(pad=3)

# If `fig.tight_layout(pad=3)` does not work:
# plt.subplots_adjust(wspace=0.5)

for i, (gname, gdata) in enumerate(groups):
sns.regplot(x='Column2', y='Column3', data=gdata, ax=axes[i])
axes[i].set_title(gname)
axes[i].set_ylim(0,)

这是我的结果图 enter image description here

标题和轴效果很好。这个线程可以被认为是关闭的,因为我得到了剧情的帮助。

但如您所见,底部图的呈现方式很奇怪,因为它还显示了从 0 到 600 的 x 轴和从 0 到 25 的 y 轴,尽管它们都应该具有相同的 y 轴格式。对于另一个图表,它们也被水平拉伸(stretch)。

我正在尝试使用方法 here但参数 squareequal

并没有真正成功

我可以进一步询问如何调整轴以使绘图成为正方形吗?谢谢!

最佳答案

您可以遍历您的组,指定标题:

fig, axes = plt.subplots(1, df.Column1.nunique(), figsize=(12,8))

groups = df.groupby('Column1')

for i, (gname, gdata) in enumerate(groups):
sns.regplot(x='Column2', y='Column3', data=gdata, ax=axes[i]).set_title(gname)

您还可以使用 seaborn.FacetGrid直接:

g = sns.FacetGrid(df, col='Column1')
g.map(sns.regplot, 'Column2', 'Column2')

编辑(根据评论中的新要求进一步定制):

fig, axes = plt.subplots(1, df.Column1.nunique(), figsize=(12,8))

groups = df.groupby('Column1')
fig.tight_layout(pad=3)

# If `fig.tight_layout(pad=3)` does not work:
# plt.subplots_adjust(wspace=0.5)

for i, (gname, gdata) in enumerate(groups):
sns.regplot(x='Column2', y='Column3', data=gdata, ax=axes[i])
axes[i].set_title(gname)
axes[i].set_ylim(0,)

关于python - 显示列值的散点图标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65494750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com