2017-06-19 45 views
5

Tôi đang tạo biểu đồ thanh ở plotly với trục y biểu thị phần trăm hoặc tỷ lệ trong 0-1. Trục y hiển thị là 0,05 thay vì 5,0%.Plotly in R: định dạng trục - nhãn đánh dấu theo tỷ lệ phần trăm

Có cách nào để hiển thị nhãn đánh dấu trục y là %## không?

Tôi đã thử sử dụng tickformat = "%" nhưng điều đó dường như không hoạt động.

+1

hiện công việc 'scale_y_continuous (labels = scales :: percent_format())' hoạt động như thế nào? (Tôi giả sử bạn đang sử dụng ggplot2, thật khó để biết khi nào bạn không đăng một ví dụ tái sản xuất). – RobertMc

+0

tickformat = "%" không hoạt động. Có lỗi trong hàm tôi viết. Công trình này: layout (yaxis = list (title = "", tickformat = "%"), xaxis = list (title = ""), barmode = 'group') – Binny

Trả lời

10

Bạn có thể làm điều này trong plotly sử dụng layout:

p <- p %>% 
      layout(yaxis = list(tickformat = "%")) 

Hoặc nếu bạn chỉ muốn thêm % và không định dạng lại những con số sau đó:

p <- p %>% 
      layout(yaxis = list(ticksuffix = "%")) 

Ví dụ:

này là một ví dụ cho thấy cách chỉnh sửa các dấu kiểm trục y như bạn muốn. (Như nhân với một số và thêm tiếp vĩ ngữ vv)

Tôi có mã này và đồ thị dưới đây:

p <- plot_ly(z = eegmean$value, 
      x = eegmean$xproj, y= eegmean$yproj, type = "contour") %>% 
       layout(yaxis = list(range = c(0, 1))) 

enter image description here

Sau đó tôi sửa đổi như sau đó mang lại cho tôi kết quả mong muốn:

g <- plot_ly(z = eegmean$value, 
      x = eegmean$xproj, y= eegmean$yproj*100, type = "contour") %>% 
       layout(yaxis = list(range = c(0, 100)))%>% 
       layout(yaxis = list(ticksuffix = "%")) 

enter image description here

Dữ liệu:

eegmean <-  
      structure(list(xproj = c(-4.36892281283989, 4.35956894475236, 
-3.66712823067503, 3.66912002532953, -6.74087785458615, 6.7287326256584, 
-3.06883681930631, 3.0727815538517, -3.05334720378955, 3.0570879596344, 
-3.79278629306119, 3.79086730312228, -7.07653326595358, 7.06235689946147, 
-7.90472265899708, 7.886291820964), yproj = c(0.0590663494057822, 
0.0624572214558794, 4.86096691858553, 4.85057791325599, 5.19791938823655, 
5.18984777332146, 9.40308855517187, 9.39510236056629, -9.35605694441838, 
-9.34632728162916, -4.81178659276704, -4.80386416586077, -5.3889955653921, 
-5.37981449730605, -0.00583969391994209, -0.00704057111565196 
), value = c(0.0606980290462218, 0.0608382874925463, 0.0517195368020531, 
0.0531772440361526, 0.0204264049886253, 0.0177325467223879, 0.0392064861131087, 
0.0425640060844722, 0.0788962178010734, 0.0740093285228833, 0.0749098131481143, 
0.0759725415557911, 0.0688015959610801, 0.0762816652838652, 0.0548817124454006, 
0.0646901969995537)), .Names = c("xproj", "yproj", "value"), row.names = c("C3", 
"C4", "F3", "F4", "F7", "F8", "FP1", "FP2", "O1", "O2", "P3", 
"P4", "P7", "P8", "T7", "T8"), class = "data.frame") 
+0

Cảm ơn @Masoud, tickformat = "%" đang hoạt động, đó là một lỗi trong hàm tôi viết. – Binny

+0

@Binny probs không bao gồm 'list' trong' layout'. Điều đó cũng xảy ra với tôi. – Masoud

6

Các plotlydocumentation hướng dẫn chúng ta this trang trong đó có một danh sách đầy đủ các tùy chọn định dạng có sẵn.

Trong trường hợp này, tỷ lệ phần trăm định dạng như 5%, tickformat='%' là đủ. Nếu bạn muốn hiển thị dấu thập phân quá, sau đó một cái gì đó như '.n%' sẽ làm các trick (thay thế n với số chữ số mong muốn sau dấu thập phân).

Trang github được tham chiếu ở trên conatins nhiều tùy chọn định dạng khác. Chúc mừng!

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