Python使用matplotlib绘图将x轴日期格式设置为yyyy-mm-dd求助
解决方法
你只需要在绘制网格的代码前,新增2行设置x轴日期格式的代码即可,修改后的完整代码如下:
import yfinance as yf import matplotlib.pyplot as plt import pandas as pd from matplotlib.dates import DateFormatter as mdates startday = '2021-11-03' endday = '2021-11-12' ticker_list = ['2303.TW','2610.TW','2618.TW'] data = pd.DataFrame(columns=ticker_list) for ticker in ticker_list: data[ticker] = yf.download(ticker, startday,endday)['Adj Close'] # 获取对应股票每日的调整后收盘价 ans=data.head() # 开始绘图 data.plot(figsize=(8,12)) plt.legend() plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei'] plt.rcParams['axes.unicode_minus'] = False plt.title("台股7日收盘价变化折线图", fontsize=16) plt.ylabel('收盘价', fontsize=14) plt.xlabel('日期', fontsize=14) # 新增的日期格式设置代码 ax = plt.gca() # 设置x轴日期格式为yyyy-mm-dd ax.xaxis.set_major_formatter(mdates('%Y-%m-%d')) # 可选:自动旋转x轴日期标签,避免重叠 plt.gcf().autofmt_xdate() plt.grid(which="major", color='k', linestyle='-.', linewidth=0.5) plt.show() print(ans)
修改说明
- 用
plt.gca()获取当前绘图的坐标轴对象 - 调用x轴的
set_major_formatter方法,传入你导入的DateFormatter实例,通过格式字符串%Y-%m-%d指定输出的日期格式为年-月-日 - 补充的
autofmt_xdate()方法会自动倾斜x轴标签,避免日期文字重叠影响可读性
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

