吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 384|回复: 14
收起左侧

[资源求助] 热力图求助

[复制链接]
我没有失眠啊i 发表于 2024-8-6 22:06
200吾爱币
里面有两个文档,中澳关系与中美关系,从1950-2023的数据每各月份都有
我希望每10年为单位,做出中澳关系与中美关系相关性表的热力图
即从一个顶点出发分别是1950 1960 ---- 之类的
文件里面有范图样式与错误图的模式,
请求大佬帮忙看一下
谢谢
https://f.ws28.cn/f/erz2tftyw6l 复制链接到浏览器打开

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

shuisanyue 发表于 2024-8-6 22:06


shuisanyue 发表于 2024-8-7 01:24
shuisanyue 发表于 2024-8-7 01:28
shuisanyue 发表于 2024-8-7 01:30
源码供参考:

[Python] 纯文本查看 复制代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

file_path = 'D:\\py001\\中美关系.xlsx'

df = pd.read_excel(file_path, sheet_name=0)

df.columns = ['Year'] + [str(i) for i in range(1, 13)]

df.set_index('Year', inplace=True)

plt.figure(figsize=(14, 10))
sns.heatmap(df, annot=True, fmt=".1f", cmap="coolwarm", cbar=True)

plt.title('Heatmap of Specified Data')
plt.xlabel('Month')
plt.ylabel('Year')

plt.xticks(rotation=45)

plt.show()
shuisanyue 发表于 2024-8-7 01:32
shuisanyue 发表于 2024-8-7 01:33
shuisanyue 发表于 2024-8-7 03:21
shuisanyue 发表于 2024-8-7 03:24
[Python] 纯文本查看 复制代码
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

file_path = 'D:\\py001\\中美关系.xlsx'

df = pd.read_excel(file_path, sheet_name=0)
df.columns = ['Year'] + [f'{i}月' for i in range(1, 13)]
df['Year'] = df['Year'].astype(int)
for col in df.columns[1:]:
    df[col] = pd.to_numeric(df[col], errors='coerce').astype(float)
df.set_index('Year', inplace=True)
df.fillna(method='ffill', inplace=True)

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

decade_avg = pd.DataFrame()
for start_year in range(1950, df.index.max() + 1, 10):
    end_year = start_year + 9
    decade_df = df[(df.index >= start_year) & (df.index <= min(end_year, df.index.max()))]
    month_avg = decade_df.mean(axis=0)
    decade_avg[f'{start_year}-{end_year}'] = month_avg.round(2)

decade_avg = decade_avg.T

plt.figure(figsize=(10, 8))
plt.title('中美关系每十年月平均值热力图')
plt.xlabel('月份')
plt.ylabel('十年')
plt.xticks(rotation=45)
sns.heatmap(decade_avg, annot=True, fmt=".2f", cmap="coolwarm", cbar_kws={'orientation': 'horizontal', 'shrink': 0.58, 'pad': 0.08})
plt.show()
shuisanyue 发表于 2024-8-7 03:27
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-11 17:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表