Skip to content

Latest commit

 

History

History
112 lines (91 loc) · 3.63 KB

File metadata and controls

112 lines (91 loc) · 3.63 KB
Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 3 column 1
---
- oeasy Python 0827
- 这是 oeasy 系统化 Python 教程,从基础一步步讲,扎实、完整、不跳步。愿意花时间学,就能真正学会。
本教程同步发布在: 

     个人网站: `https://oeasy.org` 
     蓝桥云课: `https://www.lanqiao.cn/courses/3584` 
     GitHub: `https://github.com/overmind1980/oeasy-python-tutorial` 
     Gitee: `https://gitee.com/overmind1980/oeasypython` 
---

实验标题

实验介绍

这是一段示例实验介绍。

准备工作

pip install openpyxl
pip install pyecharts
wget https://labfile.shiyanlou.com/courses/3584/%E5%8C%97%E4%BA%AC2024%E5%B9%B4%E5%A4%A9%E6%B0%94%E6%95%B0%E6%8D%AE.xlsx
  • 完成准备工作

图片描述

编辑py文件

import pandas as pd
from pyecharts.charts import HeatMap
from pyecharts import options as opts

# 读取数据
file_path = '北京2024年天气数据.xlsx'
df = pd.read_excel(file_path)

# 设置日期格式和提取月份和日期
df['日期'] = pd.to_datetime(df['日期'], format='%Y年%m月%d日', errors='coerce')
df['月份'] = df['日期'].dt.month
df['日期'] = df['日期'].dt.day

# 创建透视表
heatmap_data = df.pivot_table(values='平均气温', index='日期', columns='月份', aggfunc='mean')

# 数据处理,转换为pyecharts所需的格式
heatmap_values = []
for day in heatmap_data.index:
    for month in heatmap_data.columns:
        heatmap_values.append([month - 1, day - 1, heatmap_data.loc[day, month]])

# 使用 pyecharts 创建热力图
heatmap = (
    HeatMap()
    .add_xaxis([str(i) + '月' for i in range(1, 13)])  # 月份标签
    .add_yaxis('日期', [i for i in range(1, 32)], value=heatmap_values)  # 日期标签
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="2024年北京每日气温热力图",
            subtitle="气温变化趋势",
            title_textstyle_opts=opts.TextStyleOpts(font_size=16),  # 标题字体大小
            subtitle_textstyle_opts=opts.TextStyleOpts(font_size=12),  # 副标题字体大小
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_ = heatmap_data.min().min(),
            max_ = heatmap_data.max().max(),
            dimension=2,  # 对应热力图中的值(气温)位置
            range_color=['#0000FF', '#00FFFF', '#FFFF00', '#FF6347'],  # 渐变色从蓝色到红色
            is_piecewise=False,  # 不使用分段
            textstyle_opts=opts.TextStyleOpts(font_size=10),  # 颜色条文本字体大小
        ),
        xaxis_opts=opts.AxisOpts(
            name="月份",
            name_textstyle_opts=opts.TextStyleOpts(font_size=14),  # X轴名称字体大小
            axislabel_opts=opts.LabelOpts(font_size=12, rotate=45),  # 旋转标签以避免重叠
        ),
        yaxis_opts=opts.AxisOpts(
            name="日期",
            name_textstyle_opts=opts.TextStyleOpts(font_size=14),  # Y轴名称字体大小
            axislabel_opts=opts.LabelOpts(font_size=12),
        ),
        # 设置图表的整体大小
        tooltip_opts=opts.TooltipOpts(is_show=True, trigger="item", formatter="{b}: {c}°C"),
        toolbox_opts=opts.ToolboxOpts(is_show=True),  # 可以添加图表工具箱
    )
)

# 渲染图表为HTML文件
heatmap.render('heat_map.html')
  • 效果

图片描述

放入nginx

sudo cp heat_map.html /usr/share/nginx/html
sudo service nginx start
firefox http://localhost/heat_map.html
  • 浏览效果

图片描述

  • 本文来自 oeasy Python 系统教程。
  • 想完整、扎实学 Python,
  • 搜索 oeasy 即可。