R语言绘制日历热力图

R语言绘制日历热力图

数据格式

这里date的格式 需要包含小时等信息,以其他格式会报错。程序会自动汇总或求平均,由statistic指定。

> data
          data3.payTime data3.payment
1   2019-01-03 14:19:16     101.26000
2   2019-01-03 14:53:13      48.65000
3   2019-01-03 22:51:02     102.46000
4   2019-01-04 10:47:05      12.47000
5   2019-01-04 13:43:51    2398.69000
6   2019-01-13 08:18:47     511.02000
7   2019-01-13 19:55:20      87.11000
8   2019-01-17 14:31:56      61.91749
9   2019-01-17 15:02:49      56.24000
10  2019-01-18 13:00:23     104.48000

将R语言环境更换为英文模式:

Sys.setlocale(category  = "LC_ALL", locale = "C")

运行绘图程序:

library(openair)
colnames(data)<-c('date','no2')
calendarPlot(data, 
             pollutant = "no2", 
             breaks = c(0, 100000, 250000, 350000, 450000),  
             # 为了展示图片效果,分段是随意分的,没有科学依据
             labels = c("Very low", "Low", "High", "Very High"),
             cols = c("lightblue", "skyblue", "gold2",  "brown"),
             statistic="sum",
             year = 2019)

可得到:
在这里插入图片描述

matplotlib是一个Python的绘库,它提供了丰富的API来创建各类形。绘制日历热力图(Calendar Heatmap)是一种将数据在日历上按照特定日期的频率或值用不同颜色表示的方法。以下是使用matplotlib绘制日历热力图的基本步骤: 1. 首先,你需要准备数据,通常是一系列日期和每个日期对应的数值。这些数据可以存储在一个Pandas的DataFrame中,其中一列是日期,另一列是数值。 2. 接下来,使用matplotlib和seaborn库(后者可以提供额外的绘样式)来绘制日历热力图。你需要安装这些库(如果尚未安装的话),可以使用pip来安装:`pip install matplotlib seaborn`。 3. 使用Pandas的日期功能处理数据,确保日期格式正确。 4. 利用seaborn的`heatmap`函数结合`calendarheatmap`(如果可用),或使用matplotlib的`imshow`函数结合日历数据来绘制热力图。 5. 根据需要调整表的颜色、标签等。 下面是一个简单的代码示例,展示如何使用matplotlib和Pandas来绘制基本的日历热力图: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 假设我们有一系列随机日期和对应的数值 dates = pd.date_range('2023-01-01', '2023-06-30', freq='D') data = np.random.rand(len(dates)) * 100 # 随机生成数据 # 将数据存储到DataFrame df = pd.DataFrame({'date': dates, 'value': data}) df.set_index('date', inplace=True) # 计算每个日期在DataFrame中的数据频率或值 cal = df['value'].resample('D').count().fillna(0) # 创建日历热力图 plt.figure(figsize=(15, 10)) sns.heatmap(cal.values.reshape(6, -1), cmap="YlGnBu", linewidths=.5, annot=True, cbar_kws={"shrink": .5}, xticklabels=14, yticklabels=True) plt.show() ``` 在上述代码中,我们首先创建了一个包含日期和随机值的DataFrame,然后通过`resample`方法将数据按照日期分组,并计算每个日期的数值个数。之后,我们使用`heatmap`函数创建了一个热力图,其中日期按照日历的格式排列。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值