2017-06-19 65 views
5

Tworzę wykresy słupkowe w pozycji plotly z osią y przedstawiającą wartości procentowe lub udziały w zakresie 0-1. Oś y wyświetla się jako 0,05 zamiast 5,0%.Spójnie w R: oś formatu - zaznacz etykiety do wartości procentowej

Czy istnieje sposób wyświetlania etykiet zaznaczenia osi Y jako %##?

Próbowałem używać tickformat = "%", ale wydaje się, że nie działa.

+1

Czy 'scale_y_continuous (labels = scale :: percent_format())' działa? (Zakładam, że używasz ggplot2, ciężko powiedzieć, kiedy nie publikujesz odtwarzalnego przykładu). – RobertMc

+0

tickformat = "%" działa. Wystąpił błąd w funkcji, którą napisałem. To działa: layout (yaxis = lista (title = "", tickformat = "%"), xaxis = lista (title = ""), barmode = "grupa") – Binny

Odpowiedz

10

Można to zrobić w plotly użyciu layout:

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

Albo jeśli chcesz tylko dodać % i nie sformatować numery następnie:

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

Przykład:

ten to przykład, który pokazuje jak edytować tyknięcia osi y, jak chcesz. (Takie jak mnożenie liczbą i dodać przedrostek, itd.)

mam ten kod i następujący wykres:

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

następnie modyfikować, jak poniżej, które daje mi pożądany wynik:

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

Dane:

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

Dzięki @Masoud, tickformat = "%" działa, to był błąd w funkcji, którą napisałem. – Binny

+0

@Binny proby nie zawiera 'listy' w' układzie'. To też się stało dla mnie. – Masoud

6

plotlydocumentation kieruje nas do this stronie, która ma pełną listę dostępnych opcji formatowania.

W takim przypadku wystarczą procenty formatowania, takie jak: 5%, tickformat='%'. Jeśli chcesz wyświetlać również przecinki dziesiętne, to coś takiego jak '.n%' może zrobić lewę (zamień n na żądaną liczbę cyfr po przecinku dziesiętnym).

Powyższa strona github zawiera więcej opcji formatowania. Twoje zdrowie!