ggplot에서 선 너비를 변경하는 방법은 무엇입니까?
데이터 링크: 사용된 데이터
내 코드:
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 <- subset(datamortur2, tradlib !="BASEDATA") # Eliminating the "BASEDATA" scenario results
allfsi.f <- datamortur3
fsi.wht <- allfsi.f[allfsi.f$sector %in% c("wht"), ]
Figure29 <- ggplot(data=fsi.wht, aes(x=factor(sres),y=value,colour=factor(tradlib)))
Figure29 + geom_line(aes(group=factor(tradlib),size=2)) + facet_grid(regionsFull~., scales="free_y", labeller=reg_labeller) + scale_colour_brewer(type = "div") +
theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 13, hjust = 0.5, vjust = 0.5),axis.title.x=element_blank()) +
ylab("FSI (%Change)") + theme(axis.text.y = element_text(colour = 'black', size = 12), axis.title.y = element_text(size = 12, hjust = 0.5, vjust = 0.2)) +
theme(strip.text.y = element_text(size = 11, hjust = 0.5, vjust = 0.5, face = 'bold'))
결과:
aes(크기=2)를 포함한 새로운 결과:
내 질문:두 번째 그래프에서 결과를 피하기 위해 선 너비를 보다 정확하게 제어할 수 있는 방법이 있습니까?저는 특히 새로 정의된 선폭을 가진 플롯을 포함하는 것이 문서화되어 있지 않다고 생각합니다.
최고, ismail
@Didzis가 정답을 말하는 동안, 몇 가지 사항에 대해 설명하겠습니다.
미학은 ggplot 호출 내에서 설정하거나 매핑할 수 있습니다.
데이터에서 aes(...) 내에 정의된 미학이 매핑되고 범례가 생성됩니다.
미적 요소는 aes() 외부에서 정의하여 단일 값으로 설정할 수도 있습니다.
제가 알기로는, 당신이 원하는 것은 크기를 단일 값으로 설정하는 것이지, 통화 내에서 매핑하는 것이 아닙니다.aes()
전화할 때aes(size = 2)
다음과 같은 변수를 생성합니다.`2`
그리고 그것을 크기를 만들기 위해 사용하고, 그것이 통화 내에 있는 것처럼 일정한 값으로부터 그것을 매핑합니다.aes
(범례에 나타나는 경우).
크기 = 1 사용(및 사용 안 함)reg_labeller
아마도 스크립트의 어딘가에 정의되어 있을 것입니다.)
Figure29 +
geom_line(aes(group=factor(tradlib)),size=1) +
facet_grid(regionsFull~., scales="free_y") +
scale_colour_brewer(type = "div") +
theme(axis.text.x = element_text(
colour = 'black', angle = 90, size = 13,
hjust = 0.5, vjust = 0.5),axis.title.x=element_blank()) +
ylab("FSI (%Change)") +
theme(axis.text.y = element_text(colour = 'black', size = 12),
axis.title.y = element_text(size = 12,
hjust = 0.5, vjust = 0.2)) +
theme(strip.text.y = element_text(size = 11, hjust = 0.5,
vjust = 0.5, face = 'bold'))
사이즈 = 2
Figure29 +
geom_line(aes(group=factor(tradlib)),size=2) +
facet_grid(regionsFull~., scales="free_y") +
scale_colour_brewer(type = "div") +
theme(axis.text.x = element_text(colour = 'black', angle = 90,
size = 13, hjust = 0.5, vjust =
0.5),axis.title.x=element_blank()) +
ylab("FSI (%Change)") +
theme(axis.text.y = element_text(colour = 'black', size = 12),
axis.title.y = element_text(size = 12,
hjust = 0.5, vjust = 0.2)) +
theme(strip.text.y = element_text(size = 11, hjust = 0.5,
vjust = 0.5, face = 'bold'))
이제 최종 이미지 크기 및 장치 유형에 적합한 크기를 정의할 수 있습니다.
선 너비:ggplot2
인수로 변경할 수 있습니다.size=
에geom_line()
.
#sample data
df<-data.frame(x=rnorm(100),y=rnorm(100))
ggplot(df,aes(x=x,y=y))+geom_line(size=2)
선 너비:ggplot2
인수로 변경할 수 있습니다.lwd=
에geom_line()
.
geom_line(aes(x=..., y=..., color=...), lwd=1.5)
그것은 또한 당신이 그냥 그것을 놓는 것처럼 보입니다.size
의 논쟁.geom_line()
양을 제외하고는aes()
적절히 확장할 수 있습니다.적어도 이런 식으로 작동합니다.geom_density
그리고 저도 같은 문제를 겪었습니다.
선폭을 유연하게 수정하려면 "scale_size_manual"을 사용할 수 있습니다. 이것은 색상, 채우기, 알파 등을 선택하는 것과 동일한 절차입니다.
library(ggplot2)
library(tidyr)
x = seq(0,10,0.05)
df <- data.frame(A = 2 * x + 10,
B = x**2 - x*6,
C = 30 - x**1.5,
X = x)
df = gather(df,A,B,C,key="Model",value="Y")
ggplot( df, aes (x=X, y=Y, size=Model, colour=Model ))+
geom_line()+
scale_size_manual( values = c(4,2,1) ) +
scale_color_manual( values = c("orange","red","navy") )
원하는 분수 값(예: size = 1.5)을 사용하여 aes() 함수 외부에 size 명령을 추가하기만 하면 됩니다.
geom_line(data,aes(x=x,y=y), size=1.5)
ggplot23.4.0 이후. 사용linewidth
.
예:
geom_line(aes(group=factor(tradlib)), linewidth=0.2)
언급URL : https://stackoverflow.com/questions/14794599/how-to-change-line-width-in-ggplot
'source' 카테고리의 다른 글
mariadb에서 구체적인 정보를 갖는 방법.오류 [Python (0) | 2023.06.06 |
---|---|
명명된 범위 범위 변경 방법 (0) | 2023.06.06 |
Firebase에서 스냅샷 하위 항목을 반복합니다. (0) | 2023.06.06 |
프로젝트를 다른 프로젝트의 참조로 추가하는 방법 (0) | 2023.06.06 |
Android Studio에서 "Android SDK 선택" 방법은 무엇입니까? (0) | 2023.06.06 |