python-時間序列x軸日期展示到天


import matplotlib.dates as mdate
import matplotlib.pyplot as plt
import tushare as ts
import pandas as pd
import datetime
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False # 解決負數無法正常顯示的問題


# 獲取2021-01-01至今的股票數據
sun_stock = ts.get_k_data(code='002078', start='2021-01-01', end=datetime.datetime.now().strftime('%Y-%m-%d'))
sun_stock['date']=pd.to_datetime(sun_stock['date'], format='%Y-%m-%d')  # 設置日期格式為datetime
sun_stock.set_index('date',inplace=True) 

一般時間序列繪圖的x軸標簽值展示到月,but,總會希望展示到天,解決方案如下:
ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))

fig = plt.figure(figsize=(15,4))
ax1 = fig.add_subplot(1,1,1)

# 設置X軸的時間顯示格式
ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d')) # 設置主刻度
# ax1.xaxis.set_minor_locator(mdate.DayLocator() ) # 設置次刻度
plt.xticks(rotation=45)
# plt.xticks(pd.date_range(sun_stock.index[0],sun_stock.index[-1]), rotation=90) # x軸標簽豎放
ax1.plot(sun_stock.index, sun_stock['close'], color='b', label='股價')


# 設置為共用X軸的雙y軸圖表
ax2 = ax1.twinx()
# ax2.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d'))
ax2.bar(sun_stock.index, sun_stock['volume'], color='g', label='成交額', width=2)

# 設置軸和軸標簽
ax1.set_yticks([i * 5 for i in range(5)])
ax1.set_ylabel('股價')
ax2.set_yticks([i * 300000 for i in range(5) ])
ax2.set_ylabel('成交額')
ax1.set_xlabel('日期')

# 設置圖形標題
ax1.set_title('股價和成交額')

# 設置圖例
ax1.legend(loc=2)
ax2.legend(loc=1)
plt.show()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM