gpt4 book ai didi

python - 绘制不同长度的数组

转载 作者:太空狗 更新时间:2023-10-30 00:50:25 24 4
gpt4 key购买 nike

我正在绘制三种不同算法的误差与迭代次数的关系图。它们需要不同的迭代次数来计算,因此数组的长度不同。但是我想在同一个图上绘制所有三行。目前,当我使用以下代码时出现此错误:

import matplotlib.pyplot as plt

plt.plot(ks, bgd_costs, 'b--', sgd_costs, 'g-.', mbgd_costs, 'r')
plt.title("Blue-- = BGD, Green-. = SGD, Red=MBGD")
plt.ylabel('Cost')
plt.xlabel('Number of updates (k)')
plt.show()

错误:

    plt.plot(ks, bgd_costs, 'b--', sgd_costs, 'g-.', mbgd_costs, 'r')
File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/pyplot.py", line 2995, in plot
ret = ax.plot(*args, **kwargs)
File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/axes/_axes.py", line 1331, in plot
for line in self._get_lines(*args, **kwargs):
File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/axes/_base.py", line 312, in _grab_next_args
for seg in self._plot_args(remaining[:isplit], kwargs):
File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/axes/_base.py", line 281, in _plot_args
x, y = self._xy_from_xy(x, y)
File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/axes/_base.py", line 223, in _xy_from_xy
raise ValueError("x and y must have same first dimension")
ValueError: x and y must have same first dimension

更新

感谢@ibizaman 的回答,我做了这个情节: enter image description here

最佳答案

如果我没记错的话,像你一样使用 plot 绘制 3 个图,每个图的 ksxbgd_costssgd_costsmbgd_costs 作为 3 个不同的 y。您显然需要 xy 具有相同的长度,就像您和错误所说的那样,事实并非如此。

要使其正常工作,您可以添加一个“保持”并拆分绘图的显示:

import matplotlib.pyplot as plt

plt.hold(True)
plt.plot(bgds, bgd_costs, 'b--')
plt.plot(sgds, sgd_costs, 'g-.')
plt.plot(mgbds, mbgd_costs, 'r')
plt.title("Blue-- = BGD, Green-. = SGD, Red=MBGD")
plt.ylabel('Cost')
plt.xlabel('Number of updates (k)')
plt.show()

注意不同的 x 轴。

如果不加hold,每一个plot都会先把这个figure擦掉。

关于python - 绘制不同长度的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22122511/

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