数据可视化--实验二:统计图可视化

数据可视化–实验二:统计图可视化

文章目录

概要

  • 学院:计算机科学与技术学院
  • 实验日期:2020-10-13
  • 实验目的: 掌握统计图可视化工具方法
  • 实验内容:
    • 对daily-minimum-temperatures-in-me.csv中的数据进行处理
    • 使用编程可视化工具实现样本示意图效果
  • 注:表格文件在我的资源中免费下载。名为“数据可视化实验–表格附件”。

实验过程

本次实验选择编程类工具pyecharts

pyecharts

  • 在Pycharm中新建Python项目,并引入pyecharts,csv等必要包。
  • 在main.py文件中编写逻辑代码,代码如下
#!/usr/bin/env python
# coding:utf-8
"""
Name    : main.py
Author  : F
Time    : 2020/10/13 20:47
Desc    : 数据可视化实验二
"""
import csv
import datetime
import pyecharts.options as opts
from pyecharts.charts import Bar3D

filename = 'daily-minimum-temperatures-in-me.csv'
datalist = []
years = set()
monthNday = set()


# readCSV读取了csv文件的内容,并分别拿到了年和日期的集合
def readCSV(filename):
    with open(filename, 'r') as f:
        filedata = csv.reader(f)
        for i in filedata:
            if i.__len__() == 2:
                try:
                    day = datetime.datetime.strptime(i[0], '%Y-%m-%d')
                    years.add(str(day.year))
                    monthNday.add(str("{:0>2d}".format(day.month)) + "-" + str("{:0>2d}".format(day.day)))
                    datalist.append([day, float(i[1])])
                except ValueError:
                    pass


# setToList将years和monthNday转为list并排序
def setToList(years, monthNday):
    years = list(years)
    monthNday = list(monthNday)
    monthNday.sort()
    years.sort()
    return years, monthNday


# shapeData形成图表所需要显示的数据类型
def shapeData():
    showlist = []
    for data in datalist:
        formatDate = str("{:0>2d}".format(data[0].month)) + "-" + str("{:0>2d}".format(data[0].day))
        # #1 日期 #2 年份(真正年份-1981) #3 温度
        date = monthNday.index(formatDate)
        year = years.index(str(data[0].year))
        temperature = data[1]
        showlist.append([date, year, temperature])
    return showlist


def draw():
    Bar3D(init_opts=opts.InitOpts(width="1600px", height="800px")).add(
        series_name="数据可视化实验二",
        data=showlist,
        xaxis3d_opts=opts.Axis3DOpts(type_="category", data=monthNday),
        yaxis3d_opts=opts.Axis3DOpts(type_="category", data=years),
        zaxis3d_opts=opts.Axis3DOpts(type_="value"),
    ).set_global_opts(
        visualmap_opts=opts.VisualMapOpts(
            max_=25,
            range_color=[
                "#313695",
                "#4575b4",
                "#74add1",
                "#abd9e9",
                "#e0f3f8",
                "#ffffbf",
                "#fee090",
                "#fdae61",
                "#f46d43",
                "#d73027",
                "#a50026",
            ],
        )
    ).render("daily-minimum-temperatures-in-me.html")


if __name__ == '__main__':
    readCSV(filename)
    years, monthNday = setToList(years, monthNday)
    showlist = shapeData()
    draw()
  • 运行main.py文件,然后在浏览器中打开daily-minimum-temperatures-in-me.html文件,结果如下

数据可视化--实验二:统计图可视化

实验结果与样本示意图相同。

数据可视化–实验二:统计图可视化实验完成,实验结果符合要求,实验成功。

上一篇:Python分析5000+抖音大V,发现大家都喜欢这类视频!


下一篇:Centos7.5 linux服务器环境搭建(二)宝塔面板的安装和使用