码迷,mamicode.com
首页 > 其他好文 > 详细

pandas数据中提取时间,和列数据绘图(一个图,多个线,成交量和收盘价图)

时间:2017-11-20 23:11:14      阅读:363      评论:0      收藏:0      [点我收藏+]

标签:日期   sub   自动   val   span   添加   rom   _for   value   

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()

技术分享图片

pandas数据中提取时间,和列数据绘图(一个图,多个线,成交量和收盘价图)

标签:日期   sub   自动   val   span   添加   rom   _for   value   

原文地址:http://www.cnblogs.com/hanbb/p/7868496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!