Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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:在matplot的x轴上绘制字符串scatterplot产生;无法将字符串转换为float";_Python_Matplotlib_Plot - Fatal编程技术网

Python:在matplot的x轴上绘制字符串scatterplot产生;无法将字符串转换为float";

Python:在matplot的x轴上绘制字符串scatterplot产生;无法将字符串转换为float";,python,matplotlib,plot,Python,Matplotlib,Plot,我有一个字典aggregate\u dict,其中字母a:z作为键,每个键都有一个列表,其中正好包含11个0到1之间的数值作为其关联值。我希望使用这些数据创建散点图,字母表中的字母在x轴上从a到z排列,给定字母的每个值在y轴上排列,如下所示: 我通常会在一秒钟内在R中对此进行分解,但我正在使用的机器上没有R,而且我没有管理员权限,所以我只能用Python来完成。我试着用以下的方式来做这件事(用下面的简化格言): 不幸的是,这种方法会产生以下跟踪: Traceback (most recent

我有一个字典
aggregate\u dict
,其中字母a:z作为键,每个键都有一个列表,其中正好包含11个0到1之间的数值作为其关联值。我希望使用这些数据创建散点图,字母表中的字母在x轴上从a到z排列,给定字母的每个值在y轴上排列,如下所示:

我通常会在一秒钟内在R中对此进行分解,但我正在使用的机器上没有R,而且我没有管理员权限,所以我只能用Python来完成。我试着用以下的方式来做这件事(用下面的简化格言):

不幸的是,这种方法会产生以下跟踪:

Traceback (most recent call last):
  File "C:/Users/dduhaime/Desktop/letter_distributions_each_section_tale.py", line 74, in <module>
    scatterplot(x_vals, y_vals )
  File "C:/Users/dduhaime/Desktop/letter_distributions_each_section_tale.py", line 56, in scatterplot
    pyplot.plot(x,y,'b.')
  File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\pyplot.py", line 2987, in plot
    ret = ax.plot(*args, **kwargs)
  File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\axes.py", line 4138, in plot
    self.add_line(line)
  File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\axes.py", line 1497, in add_line
    self._update_line_limits(line)
  File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\axes.py", line 1508, in _update_line_limits
    path = line.get_path()
  File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\lines.py", line 743, in get_path
    self.recache()
  File "C:\Python27\ArcGIS10.2\lib\site-packages\matplotlib\lines.py", line 420, in recache
    x = np.asarray(xconv, np.float_)
  File "C:\Python27\ArcGIS10.2\lib\site-packages\numpy\core\numeric.py", line 320, in asarray
    return array(a, dtype, copy=False, order=order)
ValueError: could not convert string to float: a
回溯(最近一次呼叫最后一次):
文件“C:/Users/dduhaime/Desktop/letter\u distributions\u each\u section\u tale.py”,第74行,在
散点图(x值,y值)
文件“C:/Users/dduhaime/Desktop/letter\u distributions\u each\u section\u tale.py”,第56行,散点图
图(x,y,'b.)
文件“C:\Python27\ArcGIS10.2\lib\site packages\matplotlib\pyplot.py”,第2987行,在plot中
ret=最大绘图(*args,**kwargs)
文件“C:\Python27\ArcGIS10.2\lib\site packages\matplotlib\axes.py”,第4138行,在绘图中
自我添加_行(行)
文件“C:\Python27\ArcGIS10.2\lib\site packages\matplotlib\axes.py”,第1497行,在添加行
自我更新行限制(行)
文件“C:\Python27\ArcGIS10.2\lib\site packages\matplotlib\axes.py”,第1508行,在更新行中
path=line.get_path()
文件“C:\Python27\ArcGIS10.2\lib\site packages\matplotlib\lines.py”,第743行,在get\u路径中
self.recache()
文件“C:\Python27\ArcGIS10.2\lib\site packages\matplotlib\lines.py”,第420行,在recache中
x=np.asarray(xconv,np.float_ux)
文件“C:\Python27\ArcGIS10.2\lib\site packages\numpy\core\numeric.py”,第320行,在asarray中
返回数组(a,数据类型,copy=False,order=order)
ValueError:无法将字符串转换为浮点:a
有人知道我如何解决这个错误并继续我的阴谋吗?如果您能提供任何建议,我将不胜感激

import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter, MultipleLocator

x_data = np.arange(97, 110)
y_data = np.random.rand(len(x_data))

def ord_to_char(v, p=None):
    return chr(int(v))

fig, ax = plt.subplots()
ax.plot(x_data, y_data, 'x')
ax.xaxis.set_major_formatter(FuncFormatter(ord_to_char))
ax.xaxis.set_major_locator(MultipleLocator(1))
plt.show()

相关文件:

优秀@tcaswell!有没有一种方法可以为x轴上的每个记号或值绘制多个值,这样x轴上的每个字母都会有3个以上的值?plot在每个(x,y)对上放置一个点,只需将x值三倍(看起来像
x=[97,97,97,98,98]
y=range(6)
perfect——我终于明白了!我不知道用ord()将str转换为int有多容易!这是一个多么有用的方法!谢谢!对不起,应该包括这个细节
import matplotlib.pyplot as plt
from matplotlib.ticker import FuncFormatter, MultipleLocator

x_data = np.arange(97, 110)
y_data = np.random.rand(len(x_data))

def ord_to_char(v, p=None):
    return chr(int(v))

fig, ax = plt.subplots()
ax.plot(x_data, y_data, 'x')
ax.xaxis.set_major_formatter(FuncFormatter(ord_to_char))
ax.xaxis.set_major_locator(MultipleLocator(1))
plt.show()