【问题标题】:ValueError: x and y must have same first dimension, but have shapes (101,) and (1,) [duplicate]ValueError:x 和 y 必须具有相同的第一维,但具有形状 (101,) 和 (1,) [重复]
【发布时间】:2020-04-01 17:00:39
【问题描述】:

enter image description here我是编码和使用 JupyterNotebook 的新手,我想问一下如何绘制 x(as any time t)=(0,10,101) 和 y(as acceleration)=-2.2 。这些是我们的教授给我们的值,但是当我尝试绘图时,它给了我一个错误,它说 ValueError:x 和 y 必须具有相同的第一维,但具有形状 (101,) 和 (1,)。谢谢。

【问题讨论】:

  • 请提供您尝试运行的代码示例以绘制数据,以便其他用户可以帮助您定义导致此错误的原因
  • import numpy as np import matplotlib.pyplot as plt t = np.linspace(0,10,101) t=x; y=(-2.2) print(y) plt.plot(x,y) plt.xlabel("time") plt.ylabel("acceleration") plt.table('球在时间t的加速度') ValueError: x 和 y 必须具有相同的第一维,但形状为 (101,) 和 (1,)
  • 写下关于你的问题的更多细节,但在任何事情之前,请阅读帮助中心关于如何写问题的内容。 stackoverflow.com/help/how-to-ask

标签: python jupyter-notebook valueerror


【解决方案1】:

当您想要绘制 x 与 y 数据时,您需要为 x 和 y 数据设置匹配的形状。 因此,为了在 y = -2.2 处绘制水平线,x 从 0 到 10 用 101 个点而不是

y = (-2.2)

你需要使用

y = np.full(101, -2.2)

或者更好

y = np.full(x.shape, -2.2)

所以y 的形状为 101,与 x 形状匹配

【讨论】:

    【解决方案2】:

    使用这个:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0,10,101)
    y = np.repeat(-2.2,101) # map y constant value
    
    plt.plot(x,y)
    plt.show()
    

    【讨论】:

      【解决方案3】:

      您的描述不清楚,我强烈建议您下次发布时提供您遇到问题的代码示例。看看其他人如何提出他们的问题。无论如何,我会尽力帮助你。

      我们知道:

      x = 0.5at^2 +V0t

      地点:

      x: 位置 一:加速度 V0:初速度 t:时间

      在现实生活中时间是连续的,但是在编程中拥有绝对连续变量是不可能的,因此下一个最好的办法是使用步长非常小的范围。

      我们先假设初始速度为零 --> x = 0.5at*t

      现在我们已经简化了方程式,让我们来解决时间问题。

      import numpy as np
      import matplotlib.pyplot as plt
      
      
      a = -2.2
      time = np.arange(0,10,0.1)
      
      
      x = [0.5*a*t*t for t in time]    
      
      
      plt.plot(time,x)
      plt.show()
      

      出来: plot of position vs time

      上面我们为时间值列表计算了 x 的每个值,如您所见,为了绘制位置与时间的值,它们的列表长度需要相同。我们可以使用“len”检查列表的长度

      print(f"length of time: {len(time)} ")
      print(f"length of position: {len(x)}" )
      

      出来:

      length of time: 100 
      length of position: 100
      

      这里有一些资源可以帮助您开始学习 python:

      我推荐的 Youtube 上的一些频道:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-09
        • 2021-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-10
        相关资源
        最近更新 更多