数据链接:使用 的数据
我的代码:
ccfsisims <- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/GTAP-CGE/GTAP_NewAggDatabase/NewFiles/GTAP_ConsIndex.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE)
ccfsirsts <- as.data.frame(ccfsisims)
ccfsirsts[6:24] <- sapply(ccfsirsts[6:24],as.numeric)
ccfsirsts <- droplevels(ccfsirsts)
ccfsirsts <- transform(ccfsirsts,sres=factor(sres,levels=unique(sres)))
library(ggplot2)
#------------------------------------------------------------------------------------------
#### Plot of food security index for Morocco and Turkey by sector
#------------------------------------------------------------------------------------------
#_Code_Begin...
datamortur <- melt(ccfsirsts[ccfsirsts$region %in% c("TUR","MAR"), ]) # Selecting regions of interest
datamortur1 <- datamortur[datamortur$variable %in% c("pFSI2"), ] # Selecting the food security index of interest
datamortur2 <- datamortur1[datamortur1$sector %in% c("wht","gro","VegtFrut","osd","OthCrop","VegtOil","XPrFood"), ] # Selecting food sectors of interest
datamortur3 …Run Code Online (Sandbox Code Playgroud) 当尺寸不同时,我一直试图在 ggplot2 或网格中绘制线段之间具有相等间距的线。但是我没有成功,所以我向你寻求帮助。
在下面的示例中,如何在线条大小不同的情况下保持线段之间的绝对间距相等?
我想避免使用自定义makeContent.myclass方法来控制自己。
library(ggplot2)
library(grid)
df <- data.frame(
x = c(1:2, 1:2),
y = c(1:2, 2:1),
size = c(1,1,10,10)
)
# In ggplot2
ggplot(df, aes(x, y, size = size, group = size)) +
geom_line(linetype = 2)
Run Code Online (Sandbox Code Playgroud)

# In grid
lines <- polylineGrob(
x = scales::rescale(df$x),
y = scales::rescale(df$y),
id = c(1,1,2,2),
gp = gpar(lty = 2, lwd = c(1, 10))
)
grid.newpage(); grid.draw(lines)
Run Code Online (Sandbox Code Playgroud)

我想要类似于以下在 illustrator 中制作的东西。请注意,红线段的长度相等。
有任何想法吗?谢谢阅读!
这是我正在使用的代码:
ggplot(data, aes(x = Date1, group=1)) +
geom_line(aes(y = Wet, colour = "Wet")) +
geom_line(aes(y = Dry, colour = "Dry"))
Run Code Online (Sandbox Code Playgroud)
当我使用功能大小时,线条太粗,并且它们的宽度从size=0.1到size=10或更多相同。有没有办法控制线的大小?
虚拟数据:
Date Wet Dry
July 5.65 4.88
September 5.38 3.93
October 4.73 2.42
Run Code Online (Sandbox Code Playgroud)