使用matplotlib pyplot设置figsize无效时如何加宽图表x轴
问题原因
你写的plt.plot(figsize=(30,5))是错误用法,plt.plot()方法的作用是绘制折线图,本身不支持figsize参数,所以尺寸设置没有生效。figsize是创建画布时的参数,需要在绘制任何图形之前配置。
解决方法
有两种常用的设置画布尺寸的方式:
- 方式1:pyplot风格直接设置:在所有绘图代码前添加
plt.figure(figsize=(30,5)),删除原本错误的plt.plot(figsize=(30,5))行即可 - 方式2:面向对象的更规范写法:显式创建画布和轴对象,后续绘图操作都基于轴对象完成,可控性更高
修正后的完整代码
import numpy as np import matplotlib.pyplot as plt # 替换为你的实际文件路径 file = "你的数据文件路径" outfile = "输出图片路径.png" data_dates = np.loadtxt(file, usecols = 0, dtype=np.str_) data1 = np.loadtxt(file, usecols = 1) data2 = np.loadtxt(file, usecols = 2) data3 = np.loadtxt(file, usecols = 3) # 正确设置画布尺寸,第一个参数为宽度、第二个为高度,单位是英寸 plt.figure(figsize=(30,5)) plt.plot(data_dates, data1, label = "T") plt.plot(data_dates, data2, label = "WS") plt.plot(data_dates, data3, label = "WD") plt.xlabel('Date', fontsize=8) plt.xticks(rotation=90, fontsize=4) plt.ylabel('Percentage Difference (%)') plt.legend() plt.savefig(outfile, format='png', dpi=200, bbox_inches='tight')
补充说明
- 如果调整后x轴的日期标签仍然过于拥挤,可以进一步调大
figsize的第一个参数(宽度值),或者通过plt.xticks(ticks=data_dates[::5])设置每隔几个日期显示一个刻度,避免重叠 - numpy新版本中
np.str已经被弃用,建议替换为np.str_避免运行警告
内容的提问来源于stack exchange,提问作者Nat
相关产品推荐
相关产品推荐

