这个报错是因为x和y的维度不一致,x的shape是(2,),y的shape是(90,)。解决方法是将x和y的长度保持一致。

以下是修改后的代码:

import numpy as np
import matplotlib.pyplot as plt

plt.subplot(1, 1, 1)

# 建立一个坐标系
x = np.array([1, 90])
y = np.array([0, 180, 160, 140, 150, 130, 140, 140, 130, 130,
      140, 140, 150, 130, 140, 130, 130, 140, 140, 140,
      130, 130,150, 130, 130, 150, 130, 140, 140, 140,
      130, 140, 140, 150, 130, 150, 140, 130, 130, 130,
      140, 130, 140, 150,140, 130, 130, 130, 150, 130,
      130, 150, 130, 130, 140, 140, 130, 140, 140, 140,
      130, 130, 130, 140, 130, 130,160, 130, 130, 130,
      140, 130, 140, 130, 160, 130, 130, 130, 140, 130,
      130, 140, 140, 130, 130, 140, 130, 130,140, 140])

plt.rcParams['font.sans-serif'] = ['KaiTi']
# 解决中文乱码问题
plt.rcParams['axes.unicode_minus'] = False
# 解决负号无法显示的问题

x = np.linspace(1, 90, len(y))  # 生成与y长度相同的x坐标
plt.plot(x, y, color="k", linestyle="dashdot",
         linewidth=1, marker="o", markersize=5, label="Variation")
# 指定颜色线型线宽和label

plt.title("Variation", loc="center")
for a, b in zip(x, y):
    plt.text(a, b, b, ha='center', va="bottom", fontsize=10)

plt.grid(True)
plt.legend()
plt.savefig(r"C:\1.jpg")
plt.show()

这样就可以避免报错了。

用python完成以下需求请示例代码 import numpy as np import matplotlibpyplot as plt pltsubplot1 1 1 # 建立一个坐标系 x = nparray1 90 y = nparray0 180 160 140 150 130 140 140 130 130 140 140 150 13

原文地址: https://www.cveoy.top/t/topic/jdXU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录