【问题标题】:Seaborn Scatterplot Color by X and YSeaborn 散点图 X 和 Y 的颜色
【发布时间】:2020-10-10 03:44:44
【问题描述】:

我在为应该是一个简单的散点图着色时遇到问题。我在我的熊猫数据框中绘制了两个比较列,但我想通过 X 散点图和 Y 散点图为散点图着色。所以 X 散射是红色的,Y 散射是黑色的。

这是我到目前为止所做的工作的简要介绍。这是 sns.lmplot,但我也尝试过 sns.scatterplot。

fig, ax = plt.subplots(figsize=(10, 5))

x=df_layer10s2['xco2'].values
y=df_layer10s2['xco2_part'].values
col = (if x then 'r', else 'black')
ax= sns.lmplot(x='xco2',y='xco2_part',data=df_layer10s2)
# plt.ylim(389,404)
# plt.xlim(389,404)

这里还有一张我的数据框是如何设置的图片:

【问题讨论】:

  • 您正在绘制 y 与 x .. “X 散射将是红色,Y 散射将是黑色”是什么意思?您需要第三个变量来提供颜色吗?
  • 对,但我基本上只想知道每个散点图的来源。就像红色散点图是代表 XCO2 的 X 值,黑色是代表 XCO_part 的 Y 值。我不确定这是否有意义。我不想涉及第三个变量,我只想显示两列之间的比较。

标签: python pandas matplotlib seaborn scatter-plot


【解决方案1】:

我认为您混淆了lmplot 的参数。此外,您可以改用regplot,因为您没有使用使lmplotregplot 不同的功能。无论如何,您似乎应该将 'time' 列用作 x 值,将 'xco2''xco2_part' 用作 y 值。在这种情况下,您可以进行两次绘图调用并设置您的 color 参数。所以是这样的:

sns.regplot(x='time', y='xco2', data=df_layer10s2, color='r')
sns.regplot(x='time', y='xco2_part', data=df_layer10s2, color='k')

这是一个例子:

np.random.seed(42)
time = np.random.random(50)
y0 = np.random.random(50)
y1 = np.random.random(50)
df = pd.DataFrame({'time': time, 'y0': y0, 'y1': y1})

sns.regplot(x='time', y='y0', data=df, color='r')
sns.regplot(x='time', y='y1', data=df, color='k')

【讨论】:

  • 我已经有这样的情节了。我想要做的主要事情是能够分辨出哪个散射点来自哪个模型(XCO2 或 XCO2 部分。)如果我可以将散射的标记形状更改为他们的哪个模型会更好来自。我认为我的问题不清楚。
  • 我对你想要什么感到困惑。不同的颜色会告诉您数据点的来源:xco2 为红色,xco2 部分为黑色(例如),这也是我理解您最初的问题的原因。您希望现在有不同的标记吗?
猜你喜欢
  • 2015-05-28
  • 2019-02-11
  • 2021-01-25
  • 1970-01-01
  • 2013-08-09
  • 1970-01-01
  • 2013-06-26
  • 2012-04-29
  • 2022-01-18
相关资源
最近更新 更多