pycharm中使用pyecharts生成 数据可视化中的交互 的echarts

本次仅实验总结,具体涉及图表:
走势图、箱型图、日历图、饼图、折线图

# 主  题:北京AQI全年趋势图
import pandas as pd
from pyecharts import Line
df = pd.read_csv('G:\\DataPrepro\\Visualize\\test9\\file9\\beijing_AQI_2018.csv')
attr = df['Date']
v1 = df['AQI']
line = Line("2018年北京AQI全年走势图",
title_pos='center',title_top='18',width=800,height=400)
line.add("AQI值:",attr,v1,mark_line=['average'],is_fill=True,area_color='#000',
        area_opacity=0.3,mark_point=["max",'min'],mark_point_symbol='circle',mark_line_symbolsize=25)
line.render(path='1.2018年北京AQI全年走势图.html')

在这里插入图片描述

import numpy as np
import pandas as pd
from pyecharts import Line

df = pd.read_csv('G:\\DataPrepro\\Visualize\\test9\\file9\\beijing_AQI_2018.csv')
dom = df[['Date', 'AQI']]
list1 = []
for j in dom['Date']:
    time = j.split('/')[1]
    list1.append(time)
df['mouth'] = list1
mouth_message = df.groupby(['mouth'])
mouth_com = mouth_message['AQI'].agg(['mean'])
mouth_com.reset_index(inplace=True)
mouth_com_last = mouth_com.sort_index()

attr = ['{}'.format(str(i) + '月') for i in range(1, 13)]
v1 = np.array(mouth_com_last['mean'])
v1 = ['{}'.format(int(i)) for i in v1]
line = Line("2018年北京AQI全年走势图", title_pos='center', title_top='18', width=800, height=400)
line.add("AQI月平均值:", attr, v1, mark_point=["max", 'min'], )
line.render(path='3.2018年北京AQI月平均走势图.html')

在这里插入图片描述

import pandas as pd
from pyecharts import Boxplot
df = pd.read_csv('G:\\DataPrepro\\Visualize\\test9\\file9\\beijing_AQI_2018.csv')
dom = df[['Date', 'AQI']]
data = [[], [], [], []]
dom1, dom2, dom3, dom4 = data
for i, j in zip(dom['Date'], dom['AQI']):
    time = i.split('/')[1]
    if time in ['1', '2', '3']:
        dom1.append(j)
    elif time in ['4', '5', '6']:
        dom2.append(j)
    elif time in ['7', '8', '9']:
        dom3.append(j)
    elif time in ['10', '11', '12']:
        dom4.append(j)
boxplot = Boxplot("2018年北京季度AQI箱型图", title_pos='center', title_top='18', width=800, height=400)
x_axis = ['第一季度', '第二季度', '第三季度', '第四季度']
y_axis = [dom1, dom2, dom3, dom4]
_yaxis=boxplot.prepare_data(y_axis)
boxplot.add("",x_axis,_yaxis)
boxplot.render(path='5.2018年北京季度AQI箱型图.html')

在这里插入图片描述

import pandas as pd
from pyecharts import Pie
df = pd.read_csv('G:\\DataPrepro\\Visualize\\test9\\file9\\beijing_AQI_2018.csv')
rank_message = df.groupby(['Quality_grade'])
rank_com = rank_message['Quality_grade'].agg(['count'])
rank_com.reset_index(inplace=True)
rank_com_last = rank_com.sort_values('count', ascending=False)
attr = rank_com_last['Quality_grade']
v1 = rank_com_last['count']
pie = Pie("2018年北京全年空气质量情况", title_pos='center', title_top='18', width=800, height=400)
pie.add("", attr, v1, radius=[40, 75], label_text_color=None, is_label_show=True,
        legend_orient="vertical", legend_pos="left", legend_top="%10")
pie.render(path='1.2018年北京全年空气质量情况.html')

在这里插入图片描述

import datetime
import random
import numpy as np
import pandas as pd
from pyecharts import HeatMap
df = pd.read_csv('G:\\DataPrepro\\Visualize\\test9\\file9\\beijing_AQI_2018.csv')
dom = df[['Date', 'PM']]
list1 = []
for i, j in zip(dom['Date'], dom['PM']):
    time_list = i.split('/')
    time = datetime.date(int(time_list[0]), int(time_list[1]), int(time_list[2]))
    PM = int(j)
    list1.append([str(time),str(PM)])
heatmap=HeatMap(" 2018年北京PM2.5指数日历图", title_pos='center', title_top='18', width=800, height=400)
heatmap.add("",list1,is_calendar_heatmap=True,visual_text_color='#000',visual_range_text=["",""],
            visual_range=[0,300],calendar_cell_size=["auto",30],is_visualmap=True,
            calendar_date_range="2018",visual_orient="horizontal",visual_pos="26%",
            visual_top="70%",is_piecewise=True,visual_split_number=6)
heatmap.render(path='8.2018年北京PM2.5指数日历图.html')

在这里插入图片描述

import pandas as pd
from pyecharts import Line
import numpy as np
citys = ['beijing', 'shanghai', 'guangzhou', 'shenzhen']
citys_AQI = []
for i in range(4):
    filename = 'G:\\DataPrepro\\Visualize\\test9\\file9\\' + citys[i] + '_AQI' + '_2018.csv'
    aqi_data = pd.read_csv(filename)
    get_data = aqi_data[['Date', 'AQI']]
    month_for_data = []
    for j in get_data['Date']:
        time = j.split('/')[1]
        month_for_data.append(time)
    aqi_data['Month'] = month_for_data
    # 去取每个月AQI平均值
    month_data = aqi_data.groupby(['Month'])
    month_AQI = month_data['AQI'].agg(['mean'])
    month_AQI.reset_index(inplace=True)
    month_AQI_average = month_AQI.sort_index()
    # 获取每个城市月均AQI的数据,转化为int类型
    month_AQI_data = np.array(month_AQI_average['mean'])
    month_AQI_data_int = ['{}'.format(int(i)) for i in month_AQI_data]
    citys_AQI.append(month_AQI_data_int)
months = ['{}'.format(str(i) + '月') for i in range(1, 13)]
line = Line("2018年北上广深AQI全年走势图", title_pos='center', title_top='18', width=800, height=400)
line.add("北京",months,citys_AQI[0],line_color='red',legend_top='8%')
line.add("上海",months,citys_AQI[1],line_color='purple',legend_top='8%')
line.add("广州",months,citys_AQI[2],line_color='blue',legend_top='8%')
line.add("深圳",months,citys_AQI[3],line_color='orange',legend_top='8%')
line.render(path='9.2018年北上广深AQI全年走势图.html')

在这里插入图片描述

# 主  题:2018年北上广深全年空气质量情况
import pandas as pd
from pyecharts import Pie, Grid
import numpy as np

citys = ['beijing', 'shanghai', 'guangzhou', 'shenzhen']
v = []
attrs = []
for i in range(4):
    filename = 'G:\\DataPrepro\\Visualize\\test9\\file9\\' + citys[i] + '_AQI' + '_2018.csv'
    df = pd.read_csv(filename)
    Quality_grade_message = df.groupby(['Quality_grade'])
    Quality_grade_com = Quality_grade_message['Quality_grade'].agg(['count'])
    Quality_grade_com.reset_index(inplace=True)
    Quality_grade_com_last = Quality_grade_com.sort_values('count', ascending=False)

    Quality_grade_array = Quality_grade_com_last['Quality_grade']
    Quality_grade_array = np.array(Quality_grade_com_last['Quality_grade'])
    attrs.append(Quality_grade_array)
    Quality_grade_count = Quality_grade_com_last['count']
    Quality_grade_count = np.array(Quality_grade_com_last['count'])
    v.append(Quality_grade_count)
pie1 = Pie('北京', title_pos="28%", title_top="24%")
pie1.add("", attrs[0], v[0], radius=[20, 40], center=[30, 27], legend_pos='63%',
         legend_top='40%', legend_orient="vertical", is_label_show=True)

pie2 = Pie('上海', title_pos="52%", title_top="24%")
pie2.add("", attrs[1], v[1], radius=[20, 40], center=[54, 27], is_label_show=False, is_legend_show=False)

pie3 = Pie('广州', title_pos="28%", title_top="24%")
pie3.add("", attrs[2], v[2], radius=[20, 40], center=[30, 80], is_label_show=False, is_legend_show=False)

pie4 = Pie('深圳', title_pos="28%", title_top="24%")
pie4.add("", attrs[3], v[3], radius=[20, 40], center=[54, 80], is_label_show=False, is_legend_show=False)
grid=Grid("2018年北上广深全年空气质量情况",width=1200)
grid.add(pie1)
grid.add(pie2)
grid.add(pie3)
grid.add(pie4)
grid.render(path='11.2018年北上广深全年空气质量情况.html')

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值