【问题标题】:Seaborn Lineplot Incorrectly Sorts X-valuesSeaborn Lineplot 错误地对 X 值进行排序
【发布时间】:2020-08-22 17:30:59
【问题描述】:

我有以下示例数据集:

InfectionDate   FER0    FER1    FER2    FER3    FER4    FER5    FER6    FER7    FER8    FER9    FER10   FER11   FER12   FER13
0   2   NaN NaN 319.0   NaN NaN NaN NaN NaN NaN NaN 510.2   NaN NaN NaN
1   1   NaN 886.2   NaN NaN NaN 960.8   NaN NaN NaN 915.9   NaN NaN NaN NaN
2   1   NaN NaN NaN NaN NaN NaN NaN NaN 847.2   NaN NaN NaN NaN NaN
3   1   NaN NaN NaN NaN NaN NaN 2308.0  1798.0  1517.0  NaN 1465.0  NaN NaN NaN
4   2   NaN NaN NaN NaN NaN NaN 2650.0  NaN NaN 1318.0  NaN NaN NaN NaN
5   2   NaN NaN NaN NaN NaN NaN 452.0   345.2   NaN NaN NaN NaN NaN NaN
6   2   NaN NaN NaN NaN 506.9   431.1   NaN NaN NaN NaN 852.8   NaN NaN NaN
7   2   NaN 184.0   NaN 535.0   NaN NaN NaN 1867.0  NaN NaN NaN NaN NaN 1097.0
8   0   217.0   NaN NaN NaN NaN NaN NaN NaN NaN 255.0   NaN 269.0   269.0   NaN
9   0   NaN NaN NaN 2263.0  NaN NaN NaN NaN NaN 2532.0  NaN NaN NaN NaN

我正在使用以下代码绘制值:

plt.figure(figsize=(13, 10))
trend_df = pd.read_clipboard(sep="\s+")
melted_df = trend_df.melt(
    id_vars="InfectionDate",
    value_vars=["FER{}".format(i) for i in range(14)],
    var_name="Marker",
)
ax = sn.lineplot(
    x="Marker",
    y="value",
    data=melted_df,
    hue="InfectionDate",
    estimator=np.mean,
    palette="RdYlGn",
    legend=False,
    sort=False,
)

seaborn 似乎仍在应用自己的排序:

我该如何解决这个问题?

【问题讨论】:

标签: pandas matplotlib seaborn


【解决方案1】:

我不完全知道您要查找的结果是什么,但问题在于lineplot 需要 x 列 to be numericdocumentation 表示 x,y:“输入数据变量;必须是数字”)。

我认为您正在寻找 pointplot,它在分类轴上绘制。

ax = sn.pointplot(...)

【讨论】:

  • 我认为你可能是对的。我会调查的。谢谢。
猜你喜欢
  • 2020-03-11
  • 2021-02-22
  • 2023-01-17
  • 2021-02-22
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 2020-10-04
  • 2015-02-03
相关资源
最近更新 更多