如何使用Matplotlib将df5和df8两个DataFrame绘制在同一张散点图上
问题根因
- 原有单独绘图的代码逻辑顺序错误:先调用绘图函数再创建画布,导致绘制内容落在默认生成的隐式画布上,后续新建的画布为空,也没有固定绘图的画布对象
- 尝试的同图代码缺失画布尺寸、字体配置、坐标轴标注等设置,若未清空之前的绘图对象,也会出现显示异常
修正后可实现同图绘制的完整代码
import matplotlib.pyplot as plt # 提前配置全局字体参数 plt.rcParams["font.family"] ="sans-serif" plt.rcParams["font.size"] = 10 # 先创建指定尺寸的画布,避免绘图内容和画布分离 fig = plt.figure(figsize=(10,15)) # 先后绘制两组散点,可自行调整颜色、透明度、点大小参数 plt.scatter(df5['Temperature'], df5['Moment'], color='g', alpha=0.4, s=6, label='df5') plt.scatter(df8['Temperature'], df8['Moment'], color='b', alpha=0.4, s=6, label='df8') # 设置坐标轴标签与图例 plt.xlabel('Temperature(K)') plt.ylabel('DC Moment (emu)') plt.legend() # 显式调用渲染展示图像 plt.show()
改动说明
- 调整了代码执行顺序:先配置全局参数、创建画布,再执行绘图操作,彻底避免画布和绘图内容分离的问题
- 给两组散点增加了
label参数,添加图例后可直接区分两组数据 - 保留了原有单图配置的透明度、点大小参数,避免点重叠看不清的问题
- 新增
plt.show()显式调用渲染,适配不同IDE的绘图上下文差异
内容的提问来源于stack exchange,提问作者Hassan
相关产品推荐
相关产品推荐

