簡體   English   中英

具有分層分類變量的線圖

[英]Line Plot with Layered Categorical Variables

我想在R中的圖中重現該圖。請注意,x軸包含分類變量(小時和天)。 y軸上可能有多條線(例如ETR列)。 我必須刪除當天的某些條目,否則Excel會在較低的層中重復它(也許有一種方法可以避免必須在Excel中執行此操作?)。

謝謝。

編輯

原始數據庫文件在這里

在此處輸入圖片說明

我不會說您的x軸是從分類變量映射的。 相反,該圖對我來說似乎是一個簡單的時間序列圖。 我要重現它的步驟可能是:1)讀取日期,時間和y值。 2)使用Zoo程序包的na.locf函數填寫“缺失”日期。 3)可能使用as.POSIXlt(paste(...),format = ...)將日期和時間合並到datetime列中。 4)如果需要處理數據,請使用Zoo包創建時間序列。 5)使用普通R或ggplot進行繪圖。

根據到目前為止發表的評論,這是解決問題的一種可行方法。 仍然缺少一些我不知道該怎么做的東西。 例如,x軸上的兩層如Excel圖表所示(一層代表時間,一層代表一天)。 同樣,對數據進行切片的部分會產生帶有NA的行,不確定為什么。

非常感謝您的幫助!

編輯:

固定代碼並添加了“比例”建議。

## Read data
data <- read.csv("http://rredc.nrel.gov/solar/old_data/nsrdb/1991-2005/data/tmy3/722287TYA.CSV",skip=1,header=TRUE)

## Construct data frame (add any columns as needed)
data.df <- data.frame(ts=as.POSIXct(paste(data$Date..MM.DD.YYYY.,data$Time..HH.MM.),format = "%m/%d/%Y %H:%M"),
                      GHI=data$GHI..W.m.2.,
                      GHIunc=data$GHI.uncert....)

## Window of data
ts.start <- as.POSIXct("1/1/1991 1:00",format="%m/%d/%Y %H:%M")
ts.end <- as.POSIXct("1/5/1991 1:00",format="%m/%d/%Y %H:%M")

## Slice data
data.df.window <- data.df[data.df$ts >= ts.start,]
data.df.window <- data.df.window[data.df.window$ts <= ts.end,]
row.names(data.df.window) <- NULL

## Example of plotting
library(ggplot2)
library(scales)

# Uncertainty in GHI data
GHI.lo <- data.df.window$GHI*(1 - data.df.window$GHIunc/100)
GHI.up <- data.df.window$GHI*(1 + data.df.window$GHIunc/100)

m <- ggplot(data.df.window,aes(x=data.df.window$ts,y=data.df.window$GHI)) +
  geom_line() +
  labs(title = "Global Horizontal Irradiance (Wh/m^2)",x="Date",y="") +
  theme(text = element_text(size=20)) +
  geom_ribbon(data=data.df.window,aes(ymin=GHI.lo,ymax=GHI.up),alpha=0.3,fill='blue') +
  scale_x_datetime(labels=date_format("%m/%d/%Y"),breaks=date_breaks("1 day"),minor_breaks=date_breaks("1 hour"))
print(m)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM