R에서 ggplot을 사용하여 상관 행렬의 일부 타일에만 표시하는 레이블의 일부를 어떻게 기울임 꼴로 표시 할 수 있습니까?

벤자민 짐머만

ggplot을 사용하여 일부 타일에 p- 값으로 레이블이 지정된 상관 행렬을 만들고 싶습니다. 이 타일 내에서 "p"를 기울임 꼴로 표시하고 싶습니다.

이것은 "p"가 이탤릭체로 표시되어야한다는 점을 제외하고 내가 원하는 플롯입니다.

지금은 aes (label)을 사용하여 타일을 채우고 플롯 외부에 해당 레이블을 만듭니다. 이렇게하면 플롯 내부에 표시 할 빈 레이블을 만들 수 있습니다.

플롯은 현재 다음을 사용하여 만들어집니다.

  figure1 <- ggplot(iris.corr.data, aes(colvars, fct_rev(rowvars)))
    figure1 +
    geom_tile(colour="grey70", aes(fill=corr), size = 0.5) +
    scale_fill_gradient2(name = "Pearson\nCorrelation",low = "#D7191C", mid = "white", high = "#2C7BB6", midpoint=0, limits=c(-1,1)) +
    geom_text(aes(label= p_labels), size=2.5, colour="black") +
    labs(x="",y="") +
    theme_classic() +
    theme(axis.text.x = element_text(angle = 30, vjust = .5, size = 9))+
    coord_fixed()

"p_labels"는 다음을 사용하여 이전에 생성되었습니다.

iris.corr.data$p_labels[iris.corr.data$p.value < 0.1 & iris.corr.data$p.value > 0] <-  paste("p = ", formatC(iris.corr.data$p.value[iris.corr.data$p.value < 0.1 & iris.corr.data$p.value > 0], digits = 2))

여기서 p.value는 각 상관에 대한 모든 p- 값을 포함하는 변수입니다.

p_labels 변수를 만들 때 표현식 함수를 사용해 보았지만 변수에 기울임 꼴 문자를 저장하는 데 실패했습니다. 플롯 자체에서 이탤릭체를 표현해야한다고 생각하지만, geom_text (aes (label = p_labels))를 사용할 때 ggplot에서 요소의 일부를 이탤릭체로 표현하는 방법을 잘 모르겠습니다.

다음은 홍채 데이터 셋을 사용하여 재현 가능한 코드입니다.

library("corrplot")
library("tidyverse")

corr.data = function(data) {
  
  # Correlations
  cor.vals = cor(data, use = "complete.obs")
  
  # P-values
  cor.p = cor.mtest(data, conf.level = .99)$p
  rownames(cor.p) = rownames(cor.vals)
  colnames(cor.p) = colnames(cor.vals)
  
  cbind(rowvars=rownames(cor.vals), data.frame(cor.vals)) %>%
    gather(colvars, corr, -rowvars) %>%
    left_join(cbind(rowvars=rownames(cor.p), data.frame(cor.p)) %>%
                gather(colvars, p.value, -rowvars))
}

df <- subset(iris, select = c(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width))
iris.corr.data <- corr.data(df)
iris.corr.data$p_labels <- ""

iris.corr.data$p_labels[iris.corr.data$p.value < 0.1 & iris.corr.data$p.value > 0] <-  paste("p = ", formatC(iris.corr.data$p.value[iris.corr.data$p.value < 0.1 & iris.corr.data$p.value > 0], digits = 2))


 figure1 <- ggplot(iris.corr.data, aes(colvars, fct_rev(rowvars)))
    figure1 +
    geom_tile(colour="grey70", aes(fill=corr), size = 0.5) +
    scale_fill_gradient2(name = "Pearson\nCorrelation",low = "#D7191C", mid = "white", high = "#2C7BB6", midpoint=0, limits=c(-1,1)) +
    geom_text(aes(label= p_labels), size=2.5, colour="black") +
    labs(x="",y="") +
    theme_classic() +
    theme(axis.text.x = element_text(angle = 30, vjust = .5, size = 9))+
    coord_fixed()
산디판 데이

이것은 작동합니다 ( 에서 표현식과 italic()함께 사용 ) :plotmathparse=TRUEgeom_text()

iris.corr.data$p_labels[iris.corr.data$p.value < 0.1 & iris.corr.data$p.value > 0] <-  paste("italic(p) == ", formatC(iris.corr.data$p.value[iris.corr.data$p.value < 0.1 & iris.corr.data$p.value > 0], digits = 2))    

ggplot(iris.corr.data, aes(colvars, fct_rev(rowvars))) +
  geom_tile(colour="grey70", aes(fill=corr), size = 0.5) +
  scale_fill_gradient2(name = "Pearson\nCorrelation",low = "#D7191C", mid = "white", high = "#2C7BB6", midpoint=0, limits=c(-1,1)) +
  geom_text(aes(label= p_labels), size=2.5, colour="black", parse=TRUE) +
  #geom_text(aes(label= p_labels), size=2.5, colour="black") +
  labs(x="",y="") +
  theme_classic() +
  theme(axis.text.x = element_text(angle = 30, vjust = .5, size = 9))+
  coord_fixed()

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

TOP 리스트

  1. 1

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  2. 2

    std :: regex의 일관성없는 동작

  3. 3

    JSoup javax.net.ssl.SSLHandshakeException : <url>과 일치하는 주체 대체 DNS 이름이 없습니다.

  4. 4

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  5. 5

    Xcode10 유효성 검사 : 이미지에 투명성이 없지만 여전히 수락되지 않습니까?

  6. 6

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  7. 7

    Ionic 2 로더가 적시에 표시되지 않음

  8. 8

    Seaborn에서 축 제목 숨기기

  9. 9

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  10. 10

    복사 / 붙여 넣기 비활성화

  11. 11

    ArrayBufferLike의 typescript 정의의 깊은 의미

  12. 12

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  13. 13

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  14. 14

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  15. 15

    PRNG 기간보다 순열이 더 많은 목록을 무작위로 섞는 방법은 무엇입니까?

  16. 16

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  17. 17

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  18. 18

    잘못된 구성 개체입니다. Webpack이 Angular의 API 스키마와 일치하지 않는 구성 개체를 사용하여 초기화되었습니다.

  19. 19

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  20. 20

    R의 마침표와 숫자 사이에 문자열 삽입

  21. 21

    Assets의 BitmapFactory.decodeStream이 Android 7에서 null을 반환합니다.

뜨겁다태그

보관