Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从值列表打印极坐标图_Python_String_List_Plot - Fatal编程技术网

Python 从值列表打印极坐标图

Python 从值列表打印极坐标图,python,string,list,plot,Python,String,List,Plot,我有一个以度为单位的值列表。这些值可以在0到360度之间 values = ['150', '140', '120', '130', '130'...] 每个值都是一个字符串 我想在极坐标图中绘制数值,以显示不同的风向。我在绘图时遇到问题,因为我发现值是字符串。是否必须将列表中的每个值转换为浮点值,或者是否可以使用值作为字符串进行打印 我试图按照这个例子,但这是一个数组。我想用一个带有字符串值的列表: import numpy as np import matplotlib.pyplot as

我有一个以度为单位的值列表。这些值可以在0到360度之间

values = ['150', '140', '120', '130', '130'...]
每个值都是一个字符串

我想在极坐标图中绘制数值,以显示不同的风向。我在绘图时遇到问题,因为我发现值是字符串。是否必须将列表中的每个值转换为浮点值,或者是否可以使用值作为字符串进行打印

我试图按照这个例子,但这是一个数组。我想用一个带有字符串值的列表:

import numpy as np
import matplotlib.pyplot as plt

a = np.array([10,10,0,0,0,68,90,90,248,240,360])

theta = np.linspace(0.0,2*np.pi, 36, endpoint=False)
arad = a*np.pi/180
hist, bins = np.histogram(a,bins=36)

ax = plt.subplot(111,polar = True)
bars = ax.bar(theta, hist)

for r, bar in zip(hist, bars):
    bar.set_facecolor(plt.cm.jet(r/10.))
    bar.set_alpha(0.5)

plt.show()
允许您将字符串转换为浮点数:

values = ['150', '140', '120', '130', '130']
a = np.array(values, dtype=float)
或者,更简洁地说

a = np.array(['150', '140', '120', '130', '130'], float)

注意:您需要为
np.histogram()
指定一个
范围
参数:


将值强制转换为浮动是否存在问题?是的,必须使值浮动;您希望matplotlib如何解释字符串?您可以使用
map(float,values)
轻松转换。
hist, bins = np.histogram(a,range=(0, 360), bins=36)