用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
这个报错是因为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()
这样就可以避免报错了。
原文地址: https://www.cveoy.top/t/topic/jdXU 著作权归作者所有。请勿转载和采集!