学习pyecharts的折线图实现数据可视化

这是我上一届师兄师姐的一个小作业,目的是为了解使用pyechars库
航班的数据都在资源里,免费下载。

要求

计算一周内机场进港与出港航班数量,并画图。

# 读取表格,并且
# fDepartureWeekday 离港时间
# fArrivalWeekday 到港时间


import pandas as pd
from pyecharts.charts import *

df = pd.read_csv(
    "data/zjsy.csv"
)

# print(df)

weekdays = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日','还未知']

fDepartureNumber = {
    '星期一':0,
    '星期二':0,
    '星期三':0,
    '星期四':0,
    '星期五':0,
    '星期六':0,
    '星期日':0,
    '还未知':0
    }
fArrivalNumber={
    '星期一':0,
    '星期二':0,
    '星期三':0,
    '星期四':0,
    '星期五':0,
    '星期六':0,
    '星期日':0,
    '还未知':0
}

fDepartureList = []
fArrivalList = []

for i in df['fDepartureWeekday']:
    if i ==  '星期一':
        fDepartureNumber['星期一'] += 1
    elif i ==  '星期二':
        fDepartureNumber['星期二'] += 1
    elif i ==  '星期三':
        fDepartureNumber['星期三'] += 1
    elif i ==  '星期四':
        fDepartureNumber['星期四'] += 1
    elif i ==  '星期五':
        fDepartureNumber['星期五'] += 1
    elif i ==  '星期六':
        fDepartureNumber['星期六'] += 1
    elif i ==  '星期日':
        fDepartureNumber['星期日'] += 1
    else:
        fDepartureNumber['还未知'] += 1

for i in df['fArrivalWeekday']:
    if i ==  '星期一':
        fArrivalNumber['星期一'] += 1
    elif i ==  '星期二':
        fArrivalNumber['星期二'] += 1
    elif i ==  '星期三':
        fArrivalNumber['星期三'] += 1
    elif i ==  '星期四':
        fArrivalNumber['星期四'] += 1
    elif i ==  '星期五':
        fArrivalNumber['星期五'] += 1
    elif i ==  '星期六':
        fArrivalNumber['星期六'] += 1
    elif i ==  '星期日':
        fArrivalNumber['星期日'] += 1
    else:
        fArrivalNumber['还未知'] += 1

for day in weekdays:
    fDepartureList.append(fDepartureNumber[day])

for day in weekdays:
    fArrivalList.append(fArrivalNumber[day])

print('fDepartureList:',fDepartureList)
print('fArrivalList:',fArrivalList)

# 查看每一天的数量
# print('星期一:',fDepartureNumber['星期一'])
# print('星期二:',fDepartureNumber['星期二'])
# print('星期三:',fDepartureNumber['星期三'])
# print('星期四:',fDepartureNumber['星期四'])
# print('星期五:',fDepartureNumber['星期五'])
# print('星期六:',fDepartureNumber['星期六'])
# print('星期日:',fDepartureNumber['星期日'])

# 判断总数是否和表格一致
# total = 0
# for day in weekdays:
#     print(fDepartureNumber[day])
#     total += fDepartureNumber[day]
# print(total)

# 这里就开始使用pyechars库,其实就使用了一个直方图
bar = (Bar()
       .add_xaxis(weekdays)
       .add_yaxis(
           "fDepartureList",
            fDepartureList
       )
       .add_yaxis(
           "fArrivalList",
            fArrivalList
       )
      )

bar.render("数据可视化-直方图.html")

结果是生成一个html文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Awesome-pyecharts</title>
            <script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js"></script>

</head>
<body>
    <div id="60185c9ab4cc49609450dba4cfbb0a94" class="chart-container" style="width:900px; height:500px;"></div>
    <script>
        var chart_60185c9ab4cc49609450dba4cfbb0a94 = echarts.init(
            document.getElementById('60185c9ab4cc49609450dba4cfbb0a94'), 'white', {renderer: 'canvas'});
        var option_60185c9ab4cc49609450dba4cfbb0a94 = {
    "animation": true,
    "animationThreshold": 2000,
    "animationDuration": 1000,
    "animationEasing": "cubicOut",
    "animationDelay": 0,
    "animationDurationUpdate": 300,
    "animationEasingUpdate": "cubicOut",
    "animationDelayUpdate": 0,
    "color": [
        "#c23531",
        "#2f4554",
        "#61a0a8",
        "#d48265",
        "#749f83",
        "#ca8622",
        "#bda29a",
        "#6e7074",
        "#546570",
        "#c4ccd3",
        "#f05b72",
        "#ef5b9c",
        "#f47920",
        "#905a3d",
        "#fab27b",
        "#2a5caa",
        "#444693",
        "#726930",
        "#b2d235",
        "#6d8346",
        "#ac6767",
        "#1d953f",
        "#6950a1",
        "#918597"
    ],
    "series": [
        {
            "type": "bar",
            "name": "fDepartureList",
            "legendHoverLink": true,
            "data": [
                706,
                419,
                376,
                672,
                705,
                728,
                694,
                0
            ],
            "showBackground": false,
            "barMinHeight": 0,
            "barCategoryGap": "20%",
            "barGap": "30%",
            "large": false,
            "largeThreshold": 400,
            "seriesLayoutBy": "column",
            "datasetIndex": 0,
            "clip": true,
            "zlevel": 0,
            "z": 2,
            "label": {
                "show": true,
                "position": "top",
                "margin": 8
            }
        },
        {
            "type": "bar",
            "name": "fArrivalList",
            "legendHoverLink": true,
            "data": [
                682,
                445,
                378,
                611,
                697,
                705,
                688,
                94
            ],
            "showBackground": false,
            "barMinHeight": 0,
            "barCategoryGap": "20%",
            "barGap": "30%",
            "large": false,
            "largeThreshold": 400,
            "seriesLayoutBy": "column",
            "datasetIndex": 0,
            "clip": true,
            "zlevel": 0,
            "z": 2,
            "label": {
                "show": true,
                "position": "top",
                "margin": 8
            }
        }
    ],
    "legend": [
        {
            "data": [
                "fDepartureList",
                "fArrivalList"
            ],
            "selected": {
                "fDepartureList": true,
                "fArrivalList": true
            }
        }
    ],
    "tooltip": {
        "show": true,
        "trigger": "item",
        "triggerOn": "mousemove|click",
        "axisPointer": {
            "type": "line"
        },
        "showContent": true,
        "alwaysShowContent": false,
        "showDelay": 0,
        "hideDelay": 100,
        "textStyle": {
            "fontSize": 14
        },
        "borderWidth": 0,
        "padding": 5
    },
    "xAxis": [
        {
            "show": true,
            "scale": false,
            "nameLocation": "end",
            "nameGap": 15,
            "gridIndex": 0,
            "inverse": false,
            "offset": 0,
            "splitNumber": 5,
            "minInterval": 0,
            "splitLine": {
                "show": false,
                "lineStyle": {
                    "show": true,
                    "width": 1,
                    "opacity": 1,
                    "curveness": 0,
                    "type": "solid"
                }
            },
            "data": [
                "\u661f\u671f\u4e00",
                "\u661f\u671f\u4e8c",
                "\u661f\u671f\u4e09",
                "\u661f\u671f\u56db",
                "\u661f\u671f\u4e94",
                "\u661f\u671f\u516d",
                "\u661f\u671f\u65e5",
                "\u8fd8\u672a\u77e5"
            ]
        }
    ],
    "yAxis": [
        {
            "show": true,
            "scale": false,
            "nameLocation": "end",
            "nameGap": 15,
            "gridIndex": 0,
            "inverse": false,
            "offset": 0,
            "splitNumber": 5,
            "minInterval": 0,
            "splitLine": {
                "show": false,
                "lineStyle": {
                    "show": true,
                    "width": 1,
                    "opacity": 1,
                    "curveness": 0,
                    "type": "solid"
                }
            }
        }
    ]
};
        chart_60185c9ab4cc49609450dba4cfbb0a94.setOption(option_60185c9ab4cc49609450dba4cfbb0a94);
    </script>
</body>
</html>

两段代码都是能运行的。
python代码还没有优化,主要还是python才学了点皮毛。
以后接着优化
芜湖,起飞

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐子元竟然被占了!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值