gpt4 book ai didi

python - matplotlib 版本 =>2.1 的散点图问题

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:07 26 4
gpt4 key购买 nike

我们在事件查看器应用程序中使用 matplotlib 来绘制数据集。我运行以下代码,matplotlib 版本 <2.1 没有问题,如 plot example 所示。我们提前创建绘图对象并稍后填充数据。这比一遍又一遍地清除和重新创建集合要快得多。如果我们想保持合理的 react 时间,就需要坚持这一点。

import numpy as np
from matplotlib import pyplot

fig = pyplot.figure()
ax = fig.add_axes((0.1, 0.1, 0.8, 0.8),autoscale_on=False)

#Empty data plot
points = ax.scatter([],[], color='r', zorder=2)
#ax properties
ax.set_xlim(-10, 10)
ax.set_ylim(5e-2, 5e3)
ax.set_yscale("log")

#Example data points
x_data = [-5, -3, 0, 3, 5]
y_data = [1, 10, 1000, 10, 1]
#Set data points
points.set_offsets(np.dstack((x_data, y_data)))

pyplot.show()

但是,在 matplotlib 2.1 以上版本中,它被破坏了,我找不到原因。

我收到以下错误消息:

Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1540, in __call__
return self.func(*args)
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 590, in callit
func(*args)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_tkagg.py", line 323, in idle_draw
self.draw()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_tkagg.py", line 304, in draw
FigureCanvasAgg.draw(self)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.py", line 430, in draw
self.figure.draw(self.renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py", line 1295, in draw
renderer, self, artists, self.suppressComposite)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/axes/_base.py", line 2399, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py", line 845, in draw
Collection.draw(self, renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py", line 256, in draw
transform, transOffset, offsets, paths = self._prepare_points()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py", line 237, in _prepare_points
offsets = transOffset.transform_non_affine(offsets)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/transforms.py", line 2457, in transform_non_affine
return self._a.transform_non_affine(points)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/transforms.py", line 2244, in transform_non_affine
y_points = y_points.reshape((len(y_points), 1))
ValueError: cannot reshape array of size 2 into shape (1,1)
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1540, in __call__
return self.func(*args)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_tkagg.py", line 233, in resize
self.show()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_tkagg.py", line 304, in draw
FigureCanvasAgg.draw(self)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_agg.py", line 430, in draw
self.figure.draw(self.renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/figure.py", line 1295, in draw
renderer, self, artists, self.suppressComposite)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/axes/_base.py", line 2399, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py", line 845, in draw
Collection.draw(self, renderer)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/artist.py", line 55, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py", line 256, in draw
transform, transOffset, offsets, paths = self._prepare_points()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/collections.py", line 237, in _prepare_points
offsets = transOffset.transform_non_affine(offsets)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/transforms.py", line 2457, in transform_non_affine
return self._a.transform_non_affine(points)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/transforms.py", line 2244, in transform_non_affine
y_points = y_points.reshape((len(y_points), 1))
ValueError: cannot reshape array of size 2 into shape (1,1)

我相信一些函数的 API 已经改变,现在正在阻止绘图。

最佳答案

要将两个一维数组按列合并为一个二维数组,numpy.dstack 可能不是最佳选择,与 matplotlib 版本无关。

你可以使用

np.column_stack((x_data, y_data))

或者只是

np.c_[x_data, y_data]

关于python - matplotlib 版本 =>2.1 的散点图问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55189376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com