ggplot2에서 geom_tile을 사용하여 연속 및 불연속 축으로 종횡비를 제어하는 방법은 무엇입니까?

MarlinaH

ggplot2을 사용하여 플롯을 만들고 싶습니다 geom_tile(). 타일의 높이와 너비가 같으면 x와 y 축이 모두 분리되어 있으면 제대로 작동하는 것 같습니다 (여기에서 논의한대로 ggplot2 geom tile height 및 width 조정 ).

그러나 연속으로 해석되는 x 축에 값이있는 경우 x 축 (MWE1)에 대해 이산 배율을 사용할 때 플롯에 많은 회색 공간이 생기고 종횡비가 1이되지 않거나 연속 스케일로 회색 공간이없는 플롯을 얻지 만 여전히 종횡비가 1 (MWE2)이 아닙니다. (이미지를 삽입했지만 평판이 충분히 높지 않아 허용되지 않는 것 같습니다.)

MWE1 :

my <- data.frame(x=c(rep(c(0.1),3),rep(c(0.3),3),rep(c(0.5),3)),y=rep(c("frac(SP1)=0.5", "frac(SP1)=0.7", "frac(SP2)=0,3"),3),z=sample(seq(1:50),9))

p <- ggplot(my, aes(x, y)) + geom_tile(aes(fill = z)) +
  scale_fill_gradient(low = "white",high = "steelblue") +
  theme_grey() +
  labs(x = "", y= "") +
  scale_x_discrete(expand = c(0,0)) +
  scale_y_discrete(expand = c(0,0)) +
  coord_fixed(ratio=1) +
  theme(axis.ticks = element_blank())

MWE2 :

my <- data.frame(x=c(rep(c(0.1),3),rep(c(0.3),3),rep(c(0.5),3)),y=rep(c("frac(SP1)=0.5", "frac(SP1)=0.7", "frac(SP2)=0,3"),3),z=sample(seq(1:50),9))

p <- ggplot(my, aes(x, y)) + geom_tile(aes(fill = z)) +
  scale_fill_gradient(low = "white",high = "steelblue") +
  theme_grey() +
  labs(x = "", y= "") +
  scale_x_continuous(breaks=c(0.1,0.3,0.5),expand = c(0,0)) +
  scale_y_discrete(expand = c(0,0)) +
  coord_fixed(ratio=1) +
  theme(axis.ticks = element_blank())

불연속 및 연속 스케일을 처리 할 때 종횡비를 제어 할 수있는 방법이 있습니까? 또는 ggplot2에게 x 값을 이산으로 해석하도록 지시하는 방법은 무엇입니까?

rrs

귀하의 질문을 잘 이해하지 못하지만 이것이 귀하가 원하는 것입니다.

p <- ggplot(my, aes(factor(x), y)) + geom_tile(aes(fill = z)) +
  scale_fill_gradient(low = "white",high = "steelblue") +
  theme_grey() +
  labs(x = "", y= "") +
  coord_fixed() +
  theme(axis.ticks = element_blank())

print(p)

x어쨌든 실제로 연속적이지 않기 때문에 변수를 요인으로 변환 했습니다. 이제 3x3 히트 맵을 얻습니다.

여기에 이미지 설명 입력

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관