python pyecharts 多折线绘图,数据处理

目录(黄总布置的小任务(●'◡'●)):

一、所有数据可视化

        1、csv文件

        2、数据处理

二、判断传感器数据是否准确

三、预测明年同一时间数据的变化

四、总结

五、代码分享及成果展示

一、所有数据可视化

1、csv文件:(部分数据展示) 需要的数据:年-月-日、temp_2(昨天最高气温)、temp_1(金今天最高气温)、average(历年同日最高气温平均值)、actual(今天真实的最高气温)

python pyecharts 多折线绘图,数据处理

2、数据处理:

可以查看我的上一条博客,这边我就不多说啦:python pyecharts 绘图 数据可视化_xiaojiayia的博客-CSDN博客python pyecharts 绘图,数据可视化,可视化中遇到的只显示横纵坐标,数据为null的问题解决方法python pyecharts 多折线绘图,数据处理https://blog.csdn.net/xiaojiayia/article/details/122707331?spm=1001.2014.3001.5502

二、判断传感器数据是否准确

我选择的方法十分简单粗暴,直接判断temp_1(当天数据)和actual(真实数据)是否相等,当相等的时候,直接输出一个exact=30 值,当不等时 exact=0.这样的话,可以在折线图中直观的看出传感器数据的大致准确率。我本来想在折线图的旁边标注上传感器数据的准确率,但是黄总说不好表,除非我会前端(我只是个麻瓜,哪会儿哦,嘿嘿),所以就没标。相关代码放下面啦

temp_2=int(df_list[4]) #csv文件第五列 昨天数据

    temp_1=int(df_list[5])#csv文件第六页

    average=float(df_list[6])#往年同一时间平均气温

    actual=int(df_list[7])#真实数据

    if temp_1==actual:

        exact=30

    else:

        exact=0

三、预测明年数据变化

这个预测就更简单粗暴啦,直接是(历年数据+今日数据)/2=明年的数据走向啦

四、总结

这个小任务,让我至少说更加熟练的用pyecharts。前面几次小任务的铺垫(数据处理啊、简单折线图的绘制啊)让这个任务没有那么难搞(因为我是个麻瓜!所以有时候就很笨蛋!)

五、代码分享集成果展示

成果展示:

这个模板我感觉很炫酷!可以放大缩小(模板分享在上一篇文章里面)

python pyecharts 多折线绘图,数据处理

python pyecharts 多折线绘图,数据处理

代码分享(是在上个小任务基础上做的,所以有些不用的就注释掉啦)

###可视化

import pandas as pd

import pyecharts.options as opts

from pyecharts.charts import Line


 

file=open("C:/Users/大佳怡/Desktop/大佳怡的python之旅/temps.csv")

df=pd.read_csv(file)

length_df=len(df)

data=[]

all_data=[]

counter=0

for index in range(0,length_df):

    df_list=list(df.iloc[index])

    #只需要年月日

    time=df_list[0:3]  

    #list转字符串

    time_str="-".join('%s'%id for id in time)

    temp_2=int(df_list[4]) #csv文件第五列 昨天数据

    temp_1=int(df_list[5])#csv文件第六页

    average=float(df_list[6])#往年同一时间平均气温

    actual=int(df_list[7])#真实数据

    if temp_1==actual:

        exact=30

        counter+=1

    else:

        exact=0

    future=float((actual+average)/2)


 

    #放入列表

    data.append(time_str)

    data.append(temp_2)

    data.append(temp_1)

    data.append(average)

    data.append(actual)

    data.append(exact)

    data.append(future)

    all_data.append(data)

    data=[]


 

#print(all_data)# temp1今天temp2昨天 average历史上每一年今天平均最高温度,actual当天真实的最高温度, 任务:所有数据可视化,判断采集到的数据准不准,预测明年同时数据会怎么变化

(

   

    Line(init_opts=opts.InitOpts(width="1680px", height="800px"))

    .add_xaxis(xaxis_data=[item[0] for item in all_data])

    .add_yaxis(

        series_name="昨天最高气温",

        y_axis=[item[1] for item in all_data],

        yaxis_index=0,

        is_smooth=True,

        is_symbol_show=False,

        color='#FF0000',

    )

    .add_yaxis(

        series_name="今日最高气温",

        y_axis=[item[2] for item in all_data],

        yaxis_index=0,

        is_smooth=True,

        is_symbol_show=False,

        color='blue',

    )

    .add_yaxis(

        series_name="历年同时最高气温",

        y_axis=[item[3] for item in all_data],

        yaxis_index=0,

        is_smooth=True,

        is_symbol_show=False,

        color='#FF6600',

    )

    .add_yaxis(

        series_name="真实气温",

        y_axis=[item[4] for item in all_data],

        yaxis_index=0,

        is_smooth=True,

        is_symbol_show=False,

        color='#FF00FF',

    )

    .add_yaxis(

        series_name="峰值代表传感器数据准确",

        y_axis=[item[5] for item in all_data],

        yaxis_index=0,

        is_smooth=True,

        is_symbol_show=False,

        color='red',

    )

        .add_yaxis(

        series_name="预测明年",

        y_axis=[item[6] for item in all_data],

        yaxis_index=0,

        is_smooth=True,

        is_symbol_show=False,

        color='#808000',

    )

    .set_global_opts(

        title_opts=opts.TitleOpts(title="temp_2 data"),

        tooltip_opts=opts.TooltipOpts(trigger="axis"),

        datazoom_opts=[

            opts.DataZoomOpts(yaxis_index=0),

            opts.DataZoomOpts(type_="inside", yaxis_index=0),

        ],

        # visualmap_opts=opts.VisualMapOpts(

        #     pos_top="10",

        #     pos_right="10",

        #     is_piecewise=True,

        #     pieces=[

        #         {"gt": 30, "lte":40 , "color": "#096"},

        #         {"gt": 40, "lte": 50, "color": "#ffde33"},

        #         {"gt": 50, "lte": 60, "color": "#ff9933"},

        #         {"gt": 60, "lte": 70, "color": "#cc0033"},

        #         {"gt": 70, "lte": 80, "color": "#660099"},

        #     ],

        #     out_of_range={"color": "#999"},

        # ),

        xaxis_opts=opts.AxisOpts(type_="category"),

        yaxis_opts=opts.AxisOpts(

            type_="value",

            name_location="start",

            min_=0,

            max_=100,

            is_scale=True,

            axistick_opts=opts.AxisTickOpts(is_inside=False),

        ),

    )

    .set_series_opts(

        markline_opts=opts.MarkLineOpts(

            data=[

                {"yAxis": 30},

                {"yAxis": 40},

                {"yAxis": 50},

                {"yAxis": 60},

                {"yAxis": 70},

                {"yAxis": 80},

                {"yAxis": 90},

                {"yAxis": 100},

            ],

            label_opts=opts.LabelOpts(position="end"),

        )

    )

    .render("temp.html")

)

 

 

上一篇:洛谷1126


下一篇:赎金信 Java