Skip to main content
 首页 » 编程设计

python之在 matplotlib/scipy/numpy 中绘制日志数组时出错

2025年05月04日8del

我有两个数组,我获取了它们的日志。当我这样做并尝试绘制他们的散点图时,我得到了这个错误:

  File "/Library/Python/2.6/site-packages/matplotlib-1.0.svn_r7892-py2.6-macosx-10.6-universal.egg/matplotlib/pyplot.py", line 2192, in scatter 
    ret = ax.scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, faceted, verts, **kwargs) 
  File "/Library/Python/2.6/site-packages/matplotlib-1.0.svn_r7892-py2.6-macosx-10.6-universal.egg/matplotlib/axes.py", line 5384, in scatter 
    self.add_collection(collection) 
  File "/Library/Python/2.6/site-packages/matplotlib-1.0.svn_r7892-py2.6-macosx-10.6-universal.egg/matplotlib/axes.py", line 1391, in add_collection 
    self.update_datalim(collection.get_datalim(self.transData)) 
  File "/Library/Python/2.6/site-packages/matplotlib-1.0.svn_r7892-py2.6-macosx-10.6-universal.egg/matplotlib/collections.py", line 153, in get_datalim 
    offsets = transOffset.transform_non_affine(offsets) 
  File "/Library/Python/2.6/site-packages/matplotlib-1.0.svn_r7892-py2.6-macosx-10.6-universal.egg/matplotlib/transforms.py", line 1924, in transform_non_affine 
    self._a.transform(points)) 
 File "/Library/Python/2.6/site-packages/matplotlib-1.0.svn_r7892-py2.6-macosx-10.6-universal.egg/matplotlib/transforms.py", line 1420, in transform 
    return affine_transform(points, mtx) 
ValueError: Invalid vertices array. 

代码很简单:

myarray_x = log(my_array[:, 0]) 
myarray_y = log(my_array[:, 1]) 
plt.scatter(myarray_x, myarray_y) 

知道是什么原因造成的吗?谢谢。

请您参考如下方法:

我最近遇到了同样的问题:

我的问题是我的 X 和 Y (numpy) 数组由 128 位 float 组成。

这种情况下的解决方案是将数组重新转换为精度较低的 float ,即

数组 = numpy.float64(数组)

希望这有帮助:~)