Seaborn - 具有平均 Y 轴的散点图
Seaborn - ScatterPlot with Average Y-axis
我已经在 seaborn 散点图中编写了以下代码来创建视觉效果
sns.scatterplot(x="Year_Birth", y="NumStorePurchases", data=md)
我得到以下格式的图
我现在需要 Y 轴的平均值,并希望将绘图调整为如下图所示
我试过在估算器中使用 np.mean,但没有成功。有没有做错什么?如何实现?
如果每个 x-value 只需要一个 y-value,则可以创建一个 sns.pointplot(...,orient='v')
。请注意,pointplot 使用分类轴,将 x-value 视为字符串,内部编号为 0,1,2,...
。默认情况下,这些 x-value 中的每一个都将被标记。 MultipleLocator
可用于仅显示例如每 10.
要抑制连接所有值的线,请使用 join=False
,而 ci=None
抑制置信区间的错误线。
这是一个例子:
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
import seaborn as sns
import pandas as pd
import numpy as np
md = pd.DataFrame({"Year_Birth": np.random.randint(1940, 2000, 200),
"NumStorePurchases": np.random.randint(0, 14, 200)})
plt.figure(figsize=(12, 4))
sns.set_style('darkgrid')
ax = sns.pointplot(x="Year_Birth", y="NumStorePurchases", order=range(1900, 2020),
orient='v', join=False, ci=None, color='cornflowerblue', data=md)
ax.xaxis.set_major_locator(MultipleLocator(10))
plt.tight_layout()
plt.show()
我已经在 seaborn 散点图中编写了以下代码来创建视觉效果
sns.scatterplot(x="Year_Birth", y="NumStorePurchases", data=md)
我得到以下格式的图
我现在需要 Y 轴的平均值,并希望将绘图调整为如下图所示
我试过在估算器中使用 np.mean,但没有成功。有没有做错什么?如何实现?
如果每个 x-value 只需要一个 y-value,则可以创建一个 sns.pointplot(...,orient='v')
。请注意,pointplot 使用分类轴,将 x-value 视为字符串,内部编号为 0,1,2,...
。默认情况下,这些 x-value 中的每一个都将被标记。 MultipleLocator
可用于仅显示例如每 10.
要抑制连接所有值的线,请使用 join=False
,而 ci=None
抑制置信区间的错误线。
这是一个例子:
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
import seaborn as sns
import pandas as pd
import numpy as np
md = pd.DataFrame({"Year_Birth": np.random.randint(1940, 2000, 200),
"NumStorePurchases": np.random.randint(0, 14, 200)})
plt.figure(figsize=(12, 4))
sns.set_style('darkgrid')
ax = sns.pointplot(x="Year_Birth", y="NumStorePurchases", order=range(1900, 2020),
orient='v', join=False, ci=None, color='cornflowerblue', data=md)
ax.xaxis.set_major_locator(MultipleLocator(10))
plt.tight_layout()
plt.show()