mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文 plt.rcParams['axes.unicode_minus'] = False # 负号 path = "D:\\朴\\6大三下\\机器学习\\任务1\\exp1\\data\\test.txt" data = pd.read_csv(path, index_col=0) color = ['r', 'b'] for _, i in data.iterrows(): x, y, c = i[0], i[1], color[int(i[2])-1] plt.scatter(x, y, color=c) plt.xlim(-6, 6) plt.ylim(-6, 6) ax.plot(x0, y0, c="grey") plt.show()我这段代码为什么不显示我添加的线呢
时间: 2023-06-15 10:08:12 浏览: 129
Matplotlib不能显示中文 — Font family [‘sans-serif’] not found警告
3星 · 编辑精心推荐
你的代码中没有给出 `ax` 的定义,可能是因为没有将 `ax` 传递给 `plot` 函数,导致没有显示线。你可以尝试修改代码为:
```
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 中文
plt.rcParams['axes.unicode_minus'] = False # 负号
path = "D:\\朴\\6大三下\\机器学习\\任务1\\exp1\\data\\test.txt"
data = pd.read_csv(path, index_col=0)
color = ['r', 'b']
fig, ax = plt.subplots() # 创建一个figure和一个子图
for _, i in data.iterrows():
x, y, c = i[0], i[1], color[int(i[2])-1]
ax.scatter(x, y, color=c)
ax.set_xlim(-6, 6) # 设置x轴范围
ax.set_ylim(-6, 6) # 设置y轴范围
x0 = np.linspace(-6, 6, 100) # 生成x轴坐标
y0 = x0 # 生成y轴坐标
ax.plot(x0, y0, c="grey") # 绘制线条
plt.show()
```
这里我们创建了一个 `figure` 和一个子图 `ax`,并将数据点和线都绘制在 `ax` 上。同时,我们使用 `set_xlim` 和 `set_ylim` 设置了 `x` 和 `y` 轴的范围。
阅读全文