【问题标题】:Add polar axes to cartesian plot in Matplotlib在 Matplotlib 中将极轴添加到笛卡尔图
【发布时间】:2011-07-02 10:10:36
【问题描述】:

我在 Matplotlib 中绘制了一个极坐标等值线图,如 this question 中所述。这基本上是将极坐标转换为笛卡尔坐标,然后在笛卡尔坐标系中绘制。

但是,我希望能够在绘图上覆盖一组极坐标系轴 - 即 0、90、180 和 270 度的径向轴(从中心伸出),带有刻度在它们上显示各个点的半径。

我完全不知道该怎么做,而且似乎在文档中找不到任何东西。有什么建议吗?

【问题讨论】:

    标签: python matplotlib plot


    【解决方案1】:
    fig   = plt.figure(0)
    rect  = [0.1,0.1,0.8,0.8]
    theta = np.linspace(0,2*np.pi,12)
    line  = np.random.rand(5)
    r     = np.linspace(1,1,12)
    
    ax_carthesian = fig.add_axes(rect, ylim=(6.5,10.5), xlim=(-2,2), aspect='equal')
    ax_carthesian.set_xlabel('X [kpc]')
    ax_carthesian.set_ylabel('Y [kpc]')
    # the polar axis:
    ax_polar = fig.add_axes(rect, polar=True, frameon=False, xticks=([]), yticks=([]))
    ax_polar.set_xticklabels(['','l=135','','l=225','','l=315','','l=45'])
    ax_polar.set_yticklabels([]) #no radial ticks
    # plotting on the carthesian axis
    im = ax_carthesian.scatter(x_stuff, y_stuff, cmap='magma')
    ax_polar.grid(True)
    bothaxes = [ax_carthesian, ax_polar]
    cbar     = plt.colorbar(im, ax = bothaxes)
    cbar.ax.set_ylabel('Log I_CO [K]')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多