【问题标题】:plotting a graph of a sequence and get a dimension error绘制序列图并获得维度错误
【发布时间】:2022-01-05 17:24:29
【问题描述】:

我正在尝试在 Python 中创建一个图来说明我的序列如何随着n 的增长而变化。我收到尺寸错误。我该如何解决这个问题?

我的代码:

import matplotlib.pyplot as plt 
import numpy as np

x = np.zeros(101)
x[0] = 0
for n in range(0, 101):
    x[n] = x[n-1] - n
    if x[n] < 0:
        x[n] = x[n-1] + n

y = set(x)   
print(y)

i = np.linspace(0, 100)

plt.plot(y, i, 'g') 

错误:

ValueError: x and y must have same first dimension, but have shapes (1,) and (50,)

【问题讨论】:

    标签: matplotlib graph error-handling


    【解决方案1】:

    问题是您正在使用 plt.plot 和一个集合,因此它说第一个维度具有形状 (1,)。 plt.plot 中的 x 参数应该是类数组或标量,您可以在 documentation 中阅读更多内容,以便将其转换为列表:

    y = list(set(x))
    

    您还需要确保 y 中的每个值在 i 中都有对应的值(y 和 i 需要是相同的形状)。所以你需要设置 np.linspace 来返回 len(y) 值:

    i = np.linspace(0, 100, len(y))
    

    代码:

    import matplotlib.pyplot as plt 
    import numpy as np
    
    x = np.zeros(101)
    x[0] = 0
    for n in range(0,101):
        x[n] = x[n-1] - n
        if x[n]<0:
            x[n] = x[n-1] + n
    
    y = list(set(x))
    
    i = np.linspace(0, 100, len(y))
    
    plt.plot(y, i,'g')
    plt.show()
    

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多