利用本地csv文件绘制股票走势图(pyercharts)

很多股票数据都是csv文件的,当然也可以利用excel文件另存为csv即可;

笔者近期结合工作情况,利用本地csv文件绘制股票走势图。

首先下载需要的数据,如沪深300指数和中证500指数数据:

 

最后成图:

 

 

 

复制代码
#!/usr/bin/python3

#导入需要的包
import csv
from pyecharts import options as opts
from pyecharts.charts import Line

#文件地址
f1 = 'C:\\Users\\Administrator\\Desktop\\test\\指数行情_000300.csv'
f2 = 'C:\\Users\\Administrator\\Desktop\\test\\指数行情_000905.csv'

#创建空列表
t1 = []
t2 = []
t3 = []

#读取其中一个文件
with open(f1, 'r',newline='',encoding='utf-8') as f:
    reader = csv.reader(f)
    
    header = next(reader)    
    print(header) #打印表头
复制代码

 

 

 

 

 逐行读取数据,并添加到列表中:

 

 

 

    for i in reader:
        t1.append(i[2]) #添加到列表,append() 方法用于在列表末尾添加新的对象,语法:list.append()
        t2.append(i[6])

with open(f2, 'r',newline='',encoding='utf-8') as f:
    reader = csv.reader(f)
    for j in reader:
        t3.append(j[6])

 

直接画图:

 

复制代码
c = (
    Line()
    .add_xaxis(t1)
    .add_yaxis("沪深300", t2)
    .add_yaxis("中证500", t3)

    .set_global_opts(
        title_opts=opts.TitleOpts(title="沪深300VS中证500",subtitle="我是副标题"),
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
    )    
    .render("line.html")
)
    
复制代码

 

 

 

有时,列表的顺序会颠倒,这时需要我们进行转换,reverse() 函数用于反向列表中元素,语法:list.reverse(),转换后再绘图:

 

复制代码
t1.reverse()
t2.reverse()
t3.reverse()

c = (
    Line()
    .add_xaxis(t1)
    .add_yaxis("沪深300", t2)
    .add_yaxis("中证500", t3)

    .set_global_opts(
        title_opts=opts.TitleOpts(title="沪深300VS中证500",subtitle="我是副标题"),
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")],
    )    
    .render("line.html")
)
复制代码

 

 

 时间和数据正确。

 

次例难点还在于基础,csv和list包熟悉运用,csv读取时,是每行的进行读取,需要把所得到的数据增至一个新的列表才能完整显示,不然只能显示最后一个数据

 

当然,我们大多数需要的是比值,而非单纯的数据,目前小编还没做好比值的图,欢迎各位大神指点!

 

posted @   徐海建  阅读(1320)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示