如何创建具有轮廓的后续极坐标图?

时间:2019-06-25 17:47:21

标签: python-3.x matplotlib time-series polar-coordinates

Polar graph

我想使用python创建像上面一样的可视化。我有时间序列数据。我已经在可视化下面创建了。如何使它看起来像上图?

fig=plt.figure(figsize=(15,8))
ax=fig.gca(projection='polar')

datastamp=pd.DataFrame()
datastamp['time']=pd.date_range(start=filtered_eda.index[0],periods=len(rec),freq='125L')
datastamp['EDA']=rec
datastamp=datastamp.set_index('time')
data_for_plotting=datastamp

first_record=data_for_plotting.index.min()
origin=first_record

data_for_plotting['deg']=((data_for_plotting.index-origin)/np.timedelta64(1,'h'))/6

ticks=np.linspace(data_for_plotting['deg'].min(),data_for_plotting['deg'].max(),data_for_plotting.shape[0])

theta=2 * np.pi * ticks
r= data_for_plotting['EDA']

ndist=data_for_plotting['EDA']/data_for_plotting['EDA'].max()
color=plt.cm.get_cmap('viridis_r')(ndist)

ax.scatter(theta, r,color=color, linewidth=2, linestyle='solid')
#ax.fill(theta,r,color='black')

ax.set_theta_zero_location("N")
ax.set_theta_direction(-1)
ax.set_xticks(np.linspace(0,2*np.pi,6,endpoint=False))

norm = mpl.colors.Normalize(vmin=data_for_plotting.EDA.min(), vmax=data_for_plotting.EDA.max())
sm = plt.cm.ScalarMappable(cmap="viridis_r", norm=norm)
sm.set_array([])
plt.colorbar(sm, ticks=np.linspace(data_for_plotting.EDA.min(), data_for_plotting.EDA.max(), 1), label="EDA", ax=ax)
ax.grid(True)

plt.show()

上面的代码给了我以下输出。 polar graph1

0 个答案:

没有答案