繁体   English   中英

Seaborn-极地图-如何在FacetGrid中更改度

[英]Seaborn - polar plot - how to change degrees in the FacetGrid

我正在使用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")

输出为: 在此处输入图片说明

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

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

我需要这样的东西:

在此处输入图片说明

编辑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.scatterplt.plot是这样的:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM