pandas數據中提取時間,和列數據繪圖(一個圖,多個線,成交量和收盤價圖)


1. 數據導入

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import tushare as ts
from datetime import datetime
import matplotlib.dates as mdates
from matplotlib.dates import AutoDateLocator

2.數據獲取

data = ts.get_hist_data('000012',start='2015-06-23',end='2017-11-16')

3.坐標軸處理

# 生成橫縱坐標信息
data_time  = data.index
data_time_translation = [datetime.strptime(d, '%Y-%m-%d').date() for d in data_time]
data_close = data['close'].values

# 配置時間坐標軸
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d')) # 顯示時間坐標的格式

autodates = AutoDateLocator()                # 時間間隔自動選取
plt.gca().xaxis.set_major_locator(autodates)

4. 畫一個圖

# 畫圖
plt.plot(data_time_translation, data_close,'b',lw=2.5)
plt.gcf().autofmt_xdate()  # 自動旋轉日期標記

plt.grid(True)
plt.axis("tight")
plt.xlabel('Time',size=20)
plt.ylabel('Close price',size=20)
plt.title('000012',size=20)

plt.show()

5.畫多個圖

# 繪圖
plt.plot(data_time_translation,data['open'].values,lw=1.5,label="open",color='blue')
plt.plot(data_time_translation,data['high'].values,label="high",color='red',lw=1.5)
plt.plot(data_time_translation,data['close'].values,lw=1.5,label="close",color='green')
plt.plot(data_time_translation,data['low'].values,lw=1.5,label="low",color='yellow')
# 自動旋轉日期標記
plt.gcf().autofmt_xdate()

# 繪圖細節
plt.grid(True)
plt.axis("tight")
plt.xlabel('Time',size=20)
plt.ylabel('Price',size=20)
plt.title('000012',size=20)
# 添加圖例
plt.legend(loc=0)

plt.show()

6.分開顯示兩個圖。

# 繪圖
plt.figure(figsize=(7,5))       # 確定圖片大小

plt.subplot(211)                # 確定第一個圖的位置
plt.plot(data_time_translation,data['close'].values,'b',label="1st")
plt.grid(True)
plt.axis('tight')
plt.ylabel('Values',size=20)
plt.title("000012")

plt.legend(loc=0)

plt.subplot(212)               # 確定第2個圖的位置
plt.bar(data_time_translation,data['volume'].values,width = 0.2,color='g',label="2nd")  # 直方圖的畫法
plt.grid(True)
plt.xlabel("Time",size=20)
plt.ylabel("Volume",size=20)
plt.legend(loc=0)
plt.gcf().autofmt_xdate()
plt.show()


免責聲明!

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



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