2017-12-14 128 views
5

Dưới đây là một âm mưu cơ bản:ggplot2: không thể thay đổi axis.title.y góc với vị trí = 'right'

ggplot(data.frame(x=1:10,y=1:10), aes(x,y)) + 
    geom_point() + 
    theme_linedraw() 

enter image description here

Nếu tôi muốn nhãn trục y không được luân chuyển, tôi có thể làm điều đó như thế này:

ggplot(data.frame(x=1:10,y=1:10), aes(x,y)) + 
    geom_point() + 
    theme_linedraw() + 
    theme(axis.title.y = 
      element_text(color='red', angle=0, vjust = 0.5)) 

enter image description here

Và nếu tôi muốn nó trên bên phải, tôi có thể làm điều đó như thế này:

ggplot(data.frame(x=1:10,y=1:10), aes(x,y)) + 
    geom_point() + 
    theme_linedraw() + 
    scale_y_continuous(position = 'right') 

enter image description here

Nhưng tại sao tôi không thể làm cả hai?

ggplot(data.frame(x=1:10,y=1:10), aes(x,y)) + 
    geom_point() + 
    theme_linedraw() + 
    scale_y_continuous(position = 'right') + 
    theme(axis.title.y = 
      element_text(color='red', angle=0, vjust = 0.5)) 

enter image description here

Để tham khảo:

> sessionInfo() 
R version 3.3.3 (2017-03-06) 
Platform: x86_64-apple-darwin13.4.0 (64-bit) 
Running under: OS X El Capitan 10.11.6 

locale: 
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets 
[6] methods base  

other attached packages: 
[1] magrittr_1.5 ggplot2_2.2.1 

loaded via a namespace (and not attached): 
[1] labeling_0.3  colorspace_1.2-6 scales_0.4.1  
[4] lazyeval_0.2.0 plyr_1.8.4  tools_3.3.3  
[7] gtable_0.2.0  tibble_1.3.4  yaml_2.1.13  
[10] Rcpp_0.12.12.5 grid_3.3.3  digest_0.6.12 
[13] rlang_0.1.2  munsell_0.4.3 
+3

'theme' có trái và phải đối số trục: 'axis.title.y.right = element_t ...' nên làm điều đó – hrabel

+0

Cảm ơn bạn! Điều đó hoạt động. Nếu bạn đăng bài như một câu trả lời tôi sẽ chấp nhận. Mặc dù vậy, mặc dù 'màu' dường như được kế thừa từ' axis.title.y' thành 'axis.title.y.right', nhưng không phải là' angle'. Có cái nhìn sâu sắc nào không? – arvi1000

+2

Tôi đoán vì có nhiều khả năng muốn có các góc khác nhau khi bạn có cả hai ... – arvi1000

Trả lời

4

ggplot2::theme đã để lại và các tùy chọn phù hợp với các thành phần được áp dụng. Vì vậy, bạn có thể sử dụng axis.title.y.right.

Điều lạ lùng là bạn cần chỉ định rõ ràng right khi axis.title.y màu cả leftright như bạn nói trong nhận xét, đốm tốt!

library(ggplot2) 
ggplot(data.frame(x=1:10,y=1:10), aes(x,y)) + 
    geom_point() + 
    theme_linedraw() + 
    scale_y_continuous(position = 'right') + 
    theme(axis.title.y.right = element_text(color='red', angle=0, vjust = 0.5)) 

Các vấn đề liên quan