这可能是一个非常基本的问题,但是我的python知识有点受限,我在解读其他问题和答案方面遇到了一些麻烦,所以我希望有人可以提供帮助...
我有一组1-D数据点(基本上沿着半径的每个点的分子数),我想绘制为2-D径向对称图像。我想围绕原点(0,0)旋转它。
基本上,我有之类的东西
但我想要
我已经看到这相对容易使用函数或定义的向量(即scipy的插值模块),但我没有函数或随机生成的数据 - 我有一个名单。我知道必须有一个简单的方法来做到这一点,但如果有人能指出我正确的方向,我真的很感激!
我已经包含了一个非常小的示例数据集(在对数比例中绘制为一条线),供人们使用,如果他们感到如此倾向:
import numpy as np
import matplotlib.pyplot as plt
rad25 = np.array([25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1])
O_rad25 = np.array([1.01E+15,3.00E+14,1.20E+14,5.63E+13,2.90E+13,1.59E+13,9.21E+12,5.53E+12,3.43E+12,2.18E+12,1.42E+12,9.44E+11,6.38E+11,4.37E+11,3.03E+11,2.13E+11,1.51E+11,1.08E+11,7.77E+10,5.60E+10,4.02E+10,2.84E+10,1.94E+10,1.20E+10,5.78E+09])
plt.plot(rad25,O_rad25)
plt.yscale('log')
plt.xlabel('Radius (distance from center in um)')
plt.ylabel('Number of molecules')
plt.show()
答案 0 :(得分:2)
您需要创建一个0到360度的值数组,然后从此数组和值数组中创建一个meshgrid。然后可以将其绘制在径向投影的子图上。
这样的事情,但是你的原因数据是:
import numpy as np
import matplotlib.pyplot as plt
# Swap out with your data
radialVals = np.linspace(0,1)
azm = np.linspace(0, 2 * np.pi)
r, th = np.meshgrid(radialVals, azm)
z = (r ** 2.0) / 4.0
plt.subplot(projection="polar")
plt.pcolormesh(th, r, z)
plt.plot(azm, r, ls='none')
plt.grid()
plt.show()
答案 1 :(得分:0)