zoukankan      html  css  js  c++  java
  • 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()

  • 相关阅读:
    uCOS的软件定时器、uCOS时钟节拍和滴答定时器的关系
    学习ucosii要用到的几本书
    freertos知识点笔记——队列、二值信号量、计数信号量
    《嵌入式软件设计基础——基于ARM Cortex—M3》读书笔记
    大小端测试C实现
    static 的三个作用
    基于IAR6或者IAR7建立STM32开发工程(通过实际测试,使用IAR6.30.4)
    STM32中stm32f0xx_flash.icf文件的作用详解!(不错的!)
    CRC点滴
    int *a[] 与(int *)a【5】的区别
  • 原文地址:https://www.cnblogs.com/hanbb/p/7868496.html
Copyright © 2011-2022 走看看