gpt4 book ai didi

python - 有没有办法根据不同列中的离散变量制作 matplotlib 散点图标记或颜色?

转载 作者:太空狗 更新时间:2023-10-30 00:40:35 26 4
gpt4 key购买 nike

我正在使用 matplotlib 从 DF 中绘制散点图。为了为每个数据集获得不同的颜色,我对 plt.scatter 进行了两次单独的调用:

plt.scatter(zzz['HFmV'], zzz['LFmV'], label = dut_groups[0], color = 'r' )
plt.scatter(qqq['HFmV'], qqq['LFmV'], label = dut_groups[1], color = 'b' )
plt.legend()
plt.show()

这给了我想要的颜色依赖性,但真正理想的是,如果我能让 pandas 通过类似

df.plot(kind = scatter(x,y, color = df.Group, marker = df.Head)

显然没有这样的动物(至少我找不到)。因此,在我看来,下一个最好的事情是将 plt.scatter 调用放入一个循环中,在该循环中我可以使颜色或标记根据其中一行(不是 x 或 y,而是其他一些行)而变化。如果我想要使用的是一个连续变量,看起来我可以使用颜色图,但在我的例子中,我需要为此起诉的行是一个字符串(变量的分类类型,而不是数字)。

非常感谢任何帮助。

最佳答案

您所做的几乎可以工作,但您必须向 color 传递一个颜色向量,而不仅仅是一个变量向量。所以你可以这样做:

color = df.Group.map({dut_groups[0]: "r", dut_groups[1]: "b"})
plt.scatter(x, y, color=color)

标记样式也是如此

你也可以使用 seaborn按照您期望的方式进行颜色映射(如讨论的 here ),尽管它不进行标记样式映射:

import seaborn as sns
import pandas as pd
from numpy.random import randn

data = pd.DataFrame(dict(x=randn(40), y=randn(40), g=["a", "b"] * 20))
sns.lmplot("x", "y", hue="g", data=data, fit_reg=False)

enter image description here

关于python - 有没有办法根据不同列中的离散变量制作 matplotlib 散点图标记或颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24297097/

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