【问题标题】:Matplotlib polar contourf plot: continuous across theta originMatplotlib极坐标轮廓图:跨越theta原点连续
【发布时间】:2019-06-10 00:24:59
【问题描述】:

我有E(freq, theta) 格式的数据,其中E 是二维数组,freqtheta 是一维数组。

以下代码部分生成附图。但是,我想让轮廓图在 0 度原点上连续(即沿 0 方位角没有楔形空白)。

我已经浏览了 matplotlib 文档,并非常广泛地发布了问题,但似乎无法找到解决此问题的方法。有什么想法吗?

代码:

[r, th] = np.meshgrid(freq,theta)

fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)

cntf = ax.contourf(th,r,np.log10(E),cmap='jet',extend='both',
    levels=np.linspace(np.mean(np.log10(E)), np.amax(np.log10(E)), 15))

ax.set_rlim(0, .3)
label_position=ax.get_rlabel_position()
ax.text(np.radians(label_position+25),ax.get_rmax()/1.5,'f (Hz)',
        rotation=label_position,ha='center',va='center')

制作的情节:

【问题讨论】:

    标签: python matplotlib plot polar-coordinates contourf


    【解决方案1】:

    类似的东西: https://stackoverflow.com/a/22129714/9324652

    dtheta = np.diff(theta).mean()
    wrp_theta = np.concatenate((theta, theta[-1:] + dtheta))
    wrp_E = np.concatenate((E, E[0:1, :]), axis=0)
    

    【讨论】:

    • 谢谢安德鲁!问题是 numpy 数组需要一个循环点才能使绘图连续。工作完美!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多