gpt4 book ai didi

python - Seaborn - 极坐标图 - 如何更改 FacetGrid 中的度数

转载 作者:行者123 更新时间:2023-12-01 02:31:46 29 4
gpt4 key购买 nike

我正在使用Seaborn制作极坐标图。这是我的代码:

r = np.linspace(0, 10, num=100)
df = pd.DataFrame({'r': r, 'rs': r})
df = pd.melt(df, id_vars=['r'], var_name='measure', value_name='theta')
g = sns.FacetGrid(df, col="measure", hue="measure",
subplot_kws=dict(projection='polar'), size=4,
sharex=False, sharey=False, despine=False)

g.map(plt.scatter, "theta", "r")

输出是: enter image description here

如您所见,度数是 0,45,90,...如何更改此间隔?

编辑1:感谢@Julio Daniel Reyes,度数问题已经解决,但现在我有另一个问题:我需要在点之间画一条线。我这里不需要点。我检查了 matplotlib 文档,但找不到解决方案。我尝试了 linewidths 但在 .scatter(x,y,linewidths)

中对我不起作用

我需要这样的东西:

enter image description here

编辑 2 因为我像这样更改了代码:

ax = plt.subplot(111, polar=True)
ax.scatter(x=[radians(x) for x in df['degree'].values],
y=df['value'].values)

用情节代替散点图,对我来说不起作用!

问候。

最佳答案

您可以像这样设置弧度刻度:

angle_ticks = np.multiply([0.5, 1.0, 1.5, 1.75, 2.0], np.pi)
g.set(xticks=angle_ticks)

或者如果您愿意

n_ticks = 10
angle_ticks = np.linspace(0, 2 * np.pi, num=n_ticks + 1)[:-1]
g.set(xticks=angle_ticks)

更新1:要获得一条线而不是点,您只需将 plt.scatter 替换为 plt.plot,如下所示:

g.map(plt.plot, "theta", "r")

更新2:对于您的最新代码:

ax.plot([radians(x) for x in df['degree'].values], df['value'].values)

关于python - Seaborn - 极坐标图 - 如何更改 FacetGrid 中的度数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46750152/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com