我目前正在公司实习,我的教育背景实际上是石油地球科学,与编程无关 . 所以我为我所做的或即将犯的任何错误道歉 .

我的主管负责制作一个极坐标轮廓图,就像下面的例子一样 . 以下示例是从OriginPro(试用版)生成的,在试用期结束后我无法再使用商业软件生成极坐标等值线图所以我真的需要帮助在python中使用不同的数据集生成完全相同的图在将来 .

为此图导入的数据来自excel电子表格,从电子表格导入数据并绘制热图和等高线图没有问题,只有在我尝试根据给定的数据生成极坐标等值图时才会出现问题 . 从我读到的,这是因为热图和等高线图投影在笛卡尔平面上,这使得它非常直接,但对于极坐标图,你需要某种形式的计算从笛卡尔坐标变为极坐标协调?如果我错了,请纠正我 .

这是我在python中尝试时发生的事情,它应该看起来像我上面给出的例子

这是我用于失败绘图的脚本

import numpy as np
import matplotlib.pyplot as plt




x = df_ODD.loc[:, 'Azimuth'].values.reshape(19,74)
y = df_ODD.loc[:, 'Inclination'].values.reshape(19,74)
z = df_ODD.loc[:, 'Values'].values.reshape(19,74)

f, ax = plt.subplots(subplot_kw=dict(projection='polar'))

plt.contour(x,y,z)


ax.set_theta_zero_location("N")
ax.set_theta_direction(-1)

cb = fig.colorbar(cax)
cax = ax.contourf(theta, r, values, 30)
cb.set_label("Normalized deviatoric stress")


plt.show()

下面是从Excel电子表格导入的数据形式,如果您想知道,只有标记为“X”,“Y”和“Z”的列忽略标记为“β,Azimuth”的列 . 数据行向下延伸直到1400行 .

我真的需要帮助来解决这个问题,我希望你们中的任何一个都能帮助我 . 谢谢