【发布时间】:2020-11-21 06:12:05
【问题描述】:
我这辈子都找不到与此类似的问题,我一直在努力弄清楚如何做到这一点。看来应该是一件很简单的事情!
设置:我将一些 X 与 Y 数据分组到 bin 中,每个 bin 包含 X 和 Y 数据点。对于每个 bin,我想绘制 X 的平均值与 Y 的平均值以及它们各自的标准差,最重要的是:使用 Seaborn“色盲”调色板对每个 bin 进行颜色编码(这是强制性的)。
我尝试过的:阳光下的一切。线图、散点图、猫图、绘图点。当这些都不起作用时,我尝试使用 matplotlib 的“错误栏”,但显然我似乎无法将 Seaborn 的“色盲”调色板导出到 matplotlib,所以这也是一个失败。
一些虚拟代码:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
some_data = pd.DataFrame({'X':[9,10,11,12,39,40,41,42], 'Y':[99,100,110,111,499,500,510,511], 'Bin':[1,1,1,1,2,2,2,2]})
一些尝试的结果:
sns.pointplot(x="X", y="Y", data=some_data, legend='full', hue='Bin')
散点图完全搞砸了 x 轴刻度,所以这是另一个我无法解决的问题。
sns.lineplot(x="X", y="Y", data=some_data, legend='full', hue='Bin', err_style="band", estimator="mean", ci='sd')
更好,但它只是在点之间画一条线,而不是计算平均值和标准差,我认为当我指定估计器和置信区间方法时它会这样做!!!!!!。
sns.scatterplot(x="X", y="Y", data=some_data, legend='full', hue='Bin')
散点图很好,但它不具备 estimator 功能,所以我实际上只是在绘制原始数据。
我完全不知道该怎么做。我整晚都在这。现在是凌晨 4 点 30 分,过去几个晚上我几乎没有睡着。任何帮助将不胜感激!
【问题讨论】:
-
期望的结果是 2 个散点(每个 bin 的 x 和 y 的平均值),并带有 stdev 的错误栏吗?
-
感谢您澄清这一点 - 是的,所需的输出是 4 个数据点的每个 bin 的一个平均值和标准差,所以总共 2 个点,每个点上都有误差线 [或类似的东西] 来表示标准开发者
标签: python matplotlib seaborn