6.月K线图+日历图

月K线图+日历图

月K线图

from pyecharts.charts import Kline
import pyecharts.options as opts
import pandas as pd
#读数据
df = pd.read_csv("stocks.csv",header=None)
#选时间
df['Date'] = pd.to_datetime(df[0])
data = df[(df['Date']>=pd.Timestamp('2017-01-01'))&(df['Date']<=pd.Timestamp('2019-12-31'))]
data['年月'] = data[0].apply(lambda string:string[:-3])

#计算每月四个值
def get_open(frame):
    index = frame[frame[0]==frame[0].min()].index[0]
    return frame.loc[index,1]
def get_close(frame):
    index = frame[frame[0]==frame[0].max()].index[0]
    return frame.loc[index,4]
def get_min(frame):
    return frame[3].min()
def get_high(frame):
    return frame[2].max()
monthFrame = pd.concat([data.groupby('年月').apply(get_open),data.groupby('年月').apply(get_close),
                        data.groupby('年月').apply(get_min),data.groupby('年月').apply(get_high)],axis=1).reset_index()
monthFrame.columns = ['month','开盘','收盘','最低','最高']

#转化成pyecharts支持的列表格式
x = list(monthFrame['month'])
y = []
for i in range(len(x)):
    y.append([monthFrame.loc[i,'开盘'],monthFrame.loc[i,'收盘'],monthFrame.loc[i,'最低'],monthFrame.loc[i,'最高']])

#画图
kl = (
    Kline()
    .add_xaxis(x)
    .add_yaxis('股票价格走势(月线)',y)
    .set_global_opts(title_opts=opts.TitleOpts(title='股票价格趋势分析',
                                              subtitle='2017年1月至2019年12月'))
)
kl.render_notebook()

在这里插入图片描述

日历图

import random
from pyecharts.charts import Calendar
import datetime

#随机生成2020年的微信步数
date = pd.date_range("2020-01-01","2020-12-31",freq="D")
steps = [random.randint(3000,30000) for i in range(len(date))]
#时间形转化成字符串,并生成pyecharts支持的列表形式[(时间,值)..]
def time2str(time):
    return datetime.datetime.strftime(time, "%Y-%m-%d")
data2 = list(zip(list(map(time2str,date)),steps))
#画图
c = (
    Calendar(init_opts=opts.InitOpts(
        theme='light',
        width='720px',
        height='240px'
        )
            )
    .add('',data2,calendar_opts=opts.CalendarOpts(
       range_=['2020-01-01','2020-12-31'],
        daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn"),
        monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn")
        
    ))
    .set_global_opts(
    title_opts=opts.TitleOpts(title='每天微信步数',subtitle='2020年1月至2020年12月'),
    visualmap_opts=opts.VisualMapOpts(
    min_=3000,
    max_=30000,
    orient='horizontal', #vitical\horizontal
    is_piecewise=True,
    pos_left='center',
    pos_top=210)
    )
)
c.render_notebook()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值