Cha*_*e_M 5 python scatter matplotlib pandas
我正在使用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()
Run Code Online (Sandbox Code Playgroud)
这给了我理想的颜色依赖性,但实际上最理想的是,如果我能让大熊猫在同一个图上用几个数据集给我一个散点图
df.plot(kind = scatter(x,y,color = df.Group,marker = df.Head)
显然没有这样的动物(至少我能找到).因此,我认为下一个最好的事情是将plt.scatter调用放入一个循环中,我可以根据其中一行(不是x或y,而是某些其他行)使颜色或标记变化.如果行I想要使用一个连续的变量看起来我可以使用色彩映射,但在我的情况下,我需要为此起诉的行是一个字符串(变量的分类类型,而不是数字).
任何帮助非常感谢.
mwa*_*kom 10
你正在做什么几乎可以工作,但你必须传递color
一个颜色矢量,而不仅仅是一个变量矢量.所以你可以这样做:
color = df.Group.map({dut_groups[0]: "r", dut_groups[1]: "b"})
plt.scatter(x, y, color=color)
Run Code Online (Sandbox Code Playgroud)
标记样式也是如此
你也可以使用seaborn做色彩映射你希望(如讨论的方式在这里),虽然它没有做标记样式映射:
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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6042 次 |
最近记录: |