将极坐标pcolormesh定位在图中的精确坐标位置

时间:2018-04-10 15:39:52

标签: python matplotlib data-visualization

我想将极坐标图的中心放在笛卡尔图中的坐标上。

我的玩具代码如下:

import matplotlib.pyplot as plt
import numpy as np
import os

fig, ax = plt.subplots(figsize=(10, 10))
X_test_i = np.zeros((5, 2))
X_test_i[0] = [10 ,10]
X_test_i[1] = [20 ,20]
X_test_i[2] = [30 ,30]
X_test_i[3] = [40 ,40]
X_test_i[4] = [50 ,50]

model_prediction_i = np.random.random((200,360))

ax.plot(X_test_i[:, 0], X_test_i[:, 1], 'b', label='Observation', linewidth=1, antialiased=True)
ax.plot(X_test_i[:, 0][-1], X_test_i[:, 1][-1], marker='o', markersize=7, color="red",
                        label='Current position', antialiased=True)


t = np.radians(np.linspace(0, 360, np.shape(model_prediction_i)[0]))
r = np.arange(0, np.shape(model_prediction_i)[1], 1)
R, T = np.meshgrid(r, t)

ax1 = fig.add_subplot(111, polar=True)
ax1.pcolormesh(T, R, model_prediction_i, cmap="Reds")


ax.set_xlim([0, 100])
ax.set_ylim([0, 200])

fig.tight_layout()
fig.savefig(os.path.join("C:/Users/X/Documents", "test" + '{0}'.format(1) + ".pdf"),
            dpi=100, transparent=True)
plt.close(fig)

X_test_i标记曲线及其最后一点,标有红点(很难看,但坐标为(50,50))应该是pcolormesh的中心。目前它看起来像这样:enter image description here

但我想将圆形网格移动到红点的中心位置。任何想法怎么做?

0 个答案:

没有答案