2013-12-16 19 views
8

Tôi có ggplot và tôi muốn chỉ làm nổi bật một số nhãn trục x cụ thể theo điều kiện được xác định trước.Thay đổi định dạng của một số nhãn trục trong ggplot2 theo điều kiện

Tôi biết rằng văn bản trục được điều khiển bởi

theme(axis.text = element_text(...)) 

nhưng điều này áp dụng cho tất cả các nhãn của trục. Điều tôi muốn là thay đổi định dạng chỉ áp dụng cho các nhãn có điều kiện = 1.

Trả lời

17

Bạn có thể bao gồm hàm ifelse() bên trong element_text() để có các nhãn khác nhau.

ggplot(iris,aes(Species,Petal.Length))+geom_boxplot()+ 
    theme(axis.text.x= 
      element_text(face=ifelse(levels(iris$Species)=="setosa","bold","italic"))) 

Hoặc bạn có thể cung cấp vectơ giá trị bên trong element_text() cùng độ dài với số lượng các cấp.

ggplot(iris,aes(Species,Petal.Length))+geom_boxplot()+ 
theme(axis.text.x = element_text(face=c("bold","italic","bold"), 
            size=c(11,12,13))) 

enter image description here

+0

Cảm ơn @ Didzis-elferts. Nó hoạt động như được quảng cáo trong các ví dụ của bạn - và nó cũng có ý nghĩa rất nhiều - nhưng nó không hoạt động bằng cách sử dụng dữ liệu của tôi. Đặc biệt, điều xảy ra là các nhãn được đánh dấu là những nhãn sai. Đó là một hành vi kỳ lạ bởi vì vectơ của điều kiện là chính xác. Nó phải có một cái gì đó để làm với phân loại trong ggplot. Tôi sẽ thử và giải quyết vấn đề! – PaoloCrosetto

+0

@PaoloCrosetto Thật khó để nhận xét tại sao giải pháp này không hiệu quả với bạn. Nếu bạn đã cập nhật câu hỏi của mình bằng ví dụ có thể tái sản xuất, tôi có thể cố gắng trợ giúp. –

+0

Cảm ơn @Didzis. Tôi đang cố gắng làm chính xác điều này. Vấn đề là tôi không thể chia sẻ dữ liệu của mình (tôi có các điều khoản hạn chế về việc sử dụng chúng) và tôi không thể tái tạo vấn đề với dữ liệu giả ... Tôi sẽ cố hết sức :) – PaoloCrosetto

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