matplotlib 为什么我无法将Pandas的数据序列输入calmap.yearplot?尝试创建日历热图

kyvafyod  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(107)

初学者的问题在这里。

**我尝试构建的内容:**一个从CSV中提取数据并创建日历热图的程序。我是一名语言学习者(西班牙语、日语等),我使用的数据集是一个CSV,它显示了我每天沉浸在目标语言中的小时数。我希望热图中的单个值是小时数。Y轴将是一周中的天数,X轴将是月份。
**我尝试过的方法:**在过去的两天里,我尝试了许多方法(其中大多数使用seborn),结果都是错误丛生的意大利面条代码...

我 * 今天 * 使用的方法是calmap。以下是我目前所拥有的:

import seaborn as sns
import matplotlib as plt
import numpy as np
from vega_datasets import data as vds
import calmap
import pandas as pd
import calplot

# importing CSV from google drive
df = pd.read_csv('ImmersionHours.csv', names=['Type', 'Name', 'Date', 'Time', 'Total Time'])

# deleting extraneous row of data
df.drop([0], inplace=True)

# making sure dates are in datetime format
df['Date'] = pd.to_datetime(df['Date'])

# setting the dates as the index
df.set_index('Date', inplace=True)

# the data is now formatted how I want

# creating a series for the heat map values
hm_values = pd.Series(df.Time)

# trying to create the heat map from the series (hm_values)
calmap.yearplot(data=hm_values, year=2021)

这是我导入Python的数据集的副本(供参考)https://docs.google.com/spreadsheets/d/1owZv0NDLz7S4R5Spf-hzRDGMTCS1FVSMvi0WsZJenWE/edit?usp=sharing
有人能告诉我哪里出错了吗?为什么热图不显示?提前感谢您的建议/提示/更正。

xiozqbni

xiozqbni1#

这个问题有点老了,但如果有人感兴趣的话,我也遇到了同样的问题,发现这本笔记本对解决这个问题很有帮助:https://github.com/amandasolis/Fitbit/blob/master/FitbitSummaryPlots.ipynb

import numpy as np
import pandas as pd
import calmap

fulldf = pd.read_csv("./data.csv", index_col=0, header=None,names=['date','duration','frac'], parse_dates=['date'], usecols=['date','frac'], infer_datetime_format=True, dayfirst=True)
fulldf.index=pd.to_datetime(fulldf.index)
events = pd.Series(fulldf['frac'])
calmap.yearplot(events, year=2022) #the notebook linked above has a better but complex viz

data.csv的第一行(我绘制了frac,第三列,而不是duration,但应该是相似的):

03/11/2022,1,"0.0103"
08/11/2022,1,"0.0103"
15/11/2022,1,"0.0103"

相关问题