【发布时间】:2019-04-09 07:18:10
【问题描述】:
我在 R 中遇到了 ggplot 和 geom_area 的问题。我的目的是生成一个堆积面积图,x 轴上的时间和 y 轴上的 p_gen 值就像这个一样(使用 Excel 制作,具有相同的数据):
堆积面积图示例:
我尝试使用如下代码绘制图形:
ggplot(pcpcen, aes(x=datetime, y=p_gen, fill = type)) + geom_area()
其中pcpcen对应这个数据框(不包括所有数据,但结构相同)
week,datetime,type,p_gen,is_ernc
376,2025-12-13 11:00:00,BESS,0.1,1
376,2025-12-13 11:00:00,BIO,302.49999999999994,1
376,2025-12-13 11:00:00,BOMBEO,0.0,1
376,2025-12-13 11:00:00,CARBON,2830.7999999999997,1
376,2025-12-13 11:00:00,COG,117.00000000000001,1
376,2025-12-13 11:00:00,DIESEL,0.0,1
376,2025-12-13 11:00:00,DIESEL_CC,0.0,1
376,2025-12-13 11:00:00,EOL,528.7,1
376,2025-12-13 11:00:00,GEO,48.0,1
376,2025-12-13 11:00:00,GLP,0.0,1
376,2025-12-13 11:00:00,GNL_CA,250.5,1
376,2025-12-13 11:00:00,GNL_CC,658.0,1
376,2025-12-13 11:00:00,HIDRO,2274.399999999999,1
376,2025-12-13 11:00:00,HIDRO_EMB,2352.2,0
376,2025-12-13 11:00:00,HIDRO_MINI,24.400000000000002,0
376,2025-12-13 11:00:00,SOL_CSP,31.5,1
376,2025-12-13 11:00:00,SOL_FV,2155.5,1
347,2025-05-22 10:00:00,BESS,0.1,1
347,2025-05-22 10:00:00,BIO,390.29999999999995,1
347,2025-05-22 10:00:00,BOMBEO,0.0,1
347,2025-05-22 10:00:00,CARBON,3865.5999999999995,1
347,2025-05-22 10:00:00,COG,117.00000000000001,1
347,2025-05-22 10:00:00,DIESEL,0.0,1
347,2025-05-22 10:00:00,DIESEL_CC,0.0,1
347,2025-05-22 10:00:00,EOL,862.8000000000001,1
347,2025-05-22 10:00:00,GEO,0.0,1
347,2025-05-22 10:00:00,GLP,37.0,1
347,2025-05-22 10:00:00,GNL_CA,255.1,1
347,2025-05-22 10:00:00,GNL_CC,1775.6,1
347,2025-05-22 10:00:00,HIDRO,1763.4000000000003,1
347,2025-05-22 10:00:00,HIDRO_EMB,2119.8999999999996,0
347,2025-05-22 10:00:00,HIDRO_MINI,25.000000000000004,0
347,2025-05-22 10:00:00,SOL_CSP,31.5,1
347,2025-05-22 10:00:00,SOL_FV,1501.1999999999991,1
但是在我运行命令之后,结果却不是我所期望的那样
如果我把x轴改成“周”列,输出就更奇怪了:
我在 Windows 10 x64 机器上使用 RStudio,这是 version 的输出:
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 5.1
year 2018
month 07
day 02
svn rev 74947
language R
version.string R version 3.5.1 (2018-07-02)
nickname Feather Spray
【问题讨论】:
-
如果没有在reproducible format 中看到您的数据,很难确定,但我猜这是数据类型问题。您可能将日期编码为因子,然后无法正确拆分日期时间轴
-
尝试在将
stringsAsFactors设置为FALSE的情况下读取您的数据,例如read.csv("pcpcen.csv", sep = ",", stringsAsFactors = FALSE)。这样做对我来说看起来很正常。