Seaborn 散点图使用多个不同的标记而不是点

问题描述 投票:0回答:1

我正在运行seaborn 0.13.2。 我正在尝试制作只有点的散点图。当我尝试

sns.scatterplot(end_of_year_2018)
时,它显示了各种奇怪的符号,从三角形到+,*等(见下图)

所以我尝试制作这样的散点图:

end_of_year_2018 = yf.download ([     "ABBN.SW", "ADEN.SW", "CFR.SW", "SGSN.SW",     "HOLN.SW", "NESN.SW", "NOVN.SW",      "ROG.SW", "SREN.SW", "SCMN.SW",      "UHR.SW", "UBSG.SW", "ZURN.SW" ], start = '2018-12-28', end = '2018-12-29')['Adj Close']

sns.scatterplot(end_of_year_2018, marker='o')

但所有这些符号仍然存在。

其他一切都很好。

The plot

我已经尝试更新我的 Seaborn:

pip install --upgrade seaborn
我尝试重置seaborn:
sns.set(rc=None)

其余情节都很好,我该怎么办?

python seaborn scatter-plot
1个回答
1
投票
  • 请参阅此 answer,了解将位置参数传递给 seaborn 绘图 API 的正确方法。
  • 传递给seaborn的数据帧应该是整齐(长)的形式,而不是宽形式,这可以用
    pandas.DataFrame.melt
    来实现,如这个问题的答案所示。
  • 已在
    python v3.12.0
    pandas v2.2.1
    matplotlib v3.8.1
    seaborn v0.13.2
    进行测试。
import yfinance as yf
import seaborn as sns
import matplotlib.pyplot as plt

# download the data
end_of_year_2018 = yf.download(['ABBN.SW', 'ADEN.SW', 'CFR.SW', 'SGSN.SW', 'HOLN.SW', 'NESN.SW', 'NOVN.SW', 'ROG.SW', 'SREN.SW', 'SCMN.SW', 'UHR.SW', 'UBSG.SW', 'ZURN.SW'], start='2018-12-28', end='2023-12-29')['Adj Close']

# convert the data to a long form
end_of_year_2018_long = end_of_year_2018.melt(ignore_index=False).reset_index()

# plot
plt.figure(figsize=(10, 8))
ax = sns.scatterplot(data=end_of_year_2018_long, x='Date', y='value', hue='Ticker', marker='.')
sns.move_legend(ax, bbox_to_anchor=(1, 0.5), loc='center left', frameon=False)

  • 也可以使用
    sns.relplot
    ,这样就无需单独设置图形大小和图例位置。
g = sns.relplot(data=end_of_year_2018_long, x='Date', y='value', hue='Ticker', marker='.', height=7)

© www.soinside.com 2019 - 2024. All rights reserved.