python - 重叠两个图时matplotlib的奇怪行为
问题描述
首先我有这些数据,情节还可以
dic={'x': {0: '1', 1: '3', 2: '4', 3: '7', 4: '9', 5: '10', 6: '11', 7: '13', 8: '14', 9: '16'},
'y': {0: '0', 1: '0', 2: '0', 3: '1', 4: '0', 5: '1', 6: '1', 7: '1', 8: '1', 9: '1'}}
df = pd.DataFrame(dic)
plt.scatter(df["x"],df["y"])
然后我有这些数据,情节也很好
y2=np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1])
xsimul=np.linspace(0,16,200).reshape(-1,1)
plt.plot(xsimul,y2)
但是当我尝试在一个图中一起创建两个图时
plt.plot(xsimul,y2)
plt.scatter(df["x"],df["y"])
我得到了这个情节
我的代码有什么问题?
解决方案
字典中的数据点是字符串。在制作绘图之前,必须将它们转换为整数。这可以通过使用astype()
. 这会产生所需的图。
df["x"] = df["x"].astype(int)
df["y"] = df["y"].astype(int)
在这种情况下,完整的 DataFrame 可以转换为整数。
df = df.astype(int)
推荐阅读
- python - WTF form.validate_on_submit() 在更新表单时不起作用
- python - 在数字/非数字边界上拆分字符串
- c++ - Win32 进程间通信分配
- flutter - Flutter 无法获取资源 X86-64-debug
- r - 带 IF 的 ForLoop - 遍历列表 - 错误 - 参数长度为零
- vue.js - 无法在 Vue JS 中使用 v-model 添加新项目
- javascript - 我需要通过 JS 中的循环单击事件
- c# - Microsoft CognitiveServices 语音类 SpeechRecognizer,无法收集结果文本
- c++ - Credential Providers V2 - 提交后添加代码并检查用户密码
- javascript - 加载资源失败:服务器响应状态为 404 () Controller.js:1