2015-05-26 30 views
7

Hãy tha thứ cho sự thiếu hiểu biết của tôi nếu đây là một câu hỏi đơn giản, nhưng tôi dường như không thể tìm ra cách gạch dưới bất kỳ phần nào của một tiêu đề cốt truyện. Tôi đang sử dụng ggplot2.Làm cách nào để gạch chân văn bản trong tiêu đề hoặc nhãn của ô? (ggplot2)

Điều tốt nhất tôi có thể tìm thấy là annotate("segment") done by hand và tôi đã tạo một ô đồ chơi để minh họa phương pháp của nó.

df <- data.frame(x = 1:10, y = 1:10) 

rngx <- 0.5 * range(df$x)[2] # store mid-point of plot based on x-axis value 
rngy <- 0.5 * range(df$y)[2] # stores mid-point of y-axis for use in ggplot 

ggplot(df, aes(x = x, y = y)) + 
    geom_point() + 
    ggtitle("Oh how I wish for ...") + 
    ggplot2::annotate("text", x = rngx, y = max(df$y) + 1, label = "underlining!", color = "red") + 
    # create underline: 
    ggplot2::annotate("segment", x = rngx-0.8, xend = rngx + 0.8, y= 10.1, yend=10.1) 

enter image description here

uses bquote(underline() with base R

pertains to lines over and under nodes on a graph

uses plotmath and offers a workaround, but it didn't help

+0

Liên kết tới việc sử dụng mưu đồ không phải là "giải pháp thay thế". Việc chấp nhận là một câu trả lời và có thể (hoặc nên?) Đã cho bạn câu trả lời. Chỉ vì một nỗ lực thứ hai (đó là không được chấp nhận) là một kludge không có lý do gì để làm việc nhỏ của Spacedman. –

Trả lời

7

Hãy thử điều này:

ggplot(df, aes(x = x, y = y)) + geom_point() + 
    ggtitle(expression(paste("Oh how I wish for ", underline(underlining)))) 

Ngoài ra, như BondedDust chỉ ra trong các ý kiến, bạn có thể tránh paste() cuộc gọi hoàn toàn, nhưng xem ra cho các for:

ggplot(df, aes(x = x, y = y)) + geom_point() + 
    ggtitle(expression(Oh~how~I~wish~'for'~underline(underlining))) 

Hoặc khác, cách tiếp cận thậm chí ngắn hơn đề nghị của Baptiste mà không sử dụng expression, paste() hoặc nhiều dấu ngã:

ggplot(df, aes(x = x, y = y)) + geom_point() + 
    ggtitle(~"Oh how I wish for "*underline(underlining)) 
+0

Nếu sử dụng 'biểu thức' thì tại sao không' biểu thức (Oh ~ như thế nào ~ tôi ~ muốn ~ cho ~ gạch dưới (gạch dưới)) '. Không cần thiết cho âm mưu thường gây nhầm lẫn 'paste()' gọi. –

+0

@BondedDust Tôi không biết về cách tiếp cận đó. Khi tôi thử, tôi gặp lỗi: 'Lỗi: không mong muốn '~' trong: " ggplot (df, aes (x = x, y = y)) + geom_point() + ggtitle (biểu thức (Oh ~ how ~ Tôi ~ mong muốn ~ cho ~ "' Tôi đang làm điều đó không chính xác? – Jota

+3

Oh damn. Đó là từ f đang làm điều đó. Trình phân tích cú pháp R thấy "for" và tắt tìm 'vì' (như nó) một chỉ mục. máy thử: 'biểu thức (Oh ~ làm thế nào ~ tôi ~ muốn ~ 'cho' ~ gạch dưới (gạch chân))'. Nó làm cho cùng một lỗi phân tích cú pháp với 'in'. –

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