Google Colab中matplotlib绘制散点图如何正常显示x轴数值
问题根因
x轴位置出现黑条是标签重叠+配置未生效共同导致的:
- 数据集日期条目多,默认x轴会渲染全部日期标签,文字完全挤压重叠后就会显示为黑块
plt.rcParams画布尺寸配置写在了plt.scatter()之后,配置不会作用到已经生成的画布上,设置的大尺寸画布没有生效- 末尾的
plt.show未加括号,没有正确触发画布渲染流程
修复方案
调整配置顺序、将日期列转为标准时间格式、增加x轴标签防重叠配置,修复后可运行代码如下:
import matplotlib.pyplot as plt import pandas as pd import matplotlib.dates as mdates from google.colab import drive drive.mount('/content/drive') # 画布尺寸配置必须放在绘图逻辑前才能生效 plt.rcParams["figure.figsize"] = (20, 8) weather_data = '/content/drive/MyDrive/Austin Weather Data/austin_weather.csv' weather = pd.read_csv(weather_data) # 将Date列转为标准日期格式,避免matplotlib按普通字符串逐值渲染 weather['Date'] = pd.to_datetime(weather['Date']) x = weather['Date'] y = weather['TempAvgF'] plt.scatter(x, y, s=10) # 旋转x轴标签避免文字重叠 plt.xticks(rotation=45) # 设置x轴标签显示间隔,示例为每3个月展示一个标签 plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=3)) # 自动调整布局,避免标签被画布边缘截断 plt.tight_layout() # 正确调用渲染方法,注意补充括号 plt.show()
可选调整参数
- 若觉得x轴标签仍过密,可将
MonthLocator(interval=3)中的interval数值调大,比如设置为6即每半年显示一个标签 figure.figsize的宽高数值可按需调整,(20,8)是Colab环境下可读性较好的默认尺寸- 散点大小可通过
plt.scatter()的s参数调整,数据量较大时建议把s设为更小值,显示效果更清晰 plt.xticks(rotation=45)控制标签旋转角度,若不习惯斜向标签可将数值改为90,实现垂直显示
内容的提问来源于stack exchange,提问作者gecko74
相关产品推荐
相关产品推荐

