ordin_flip () и горизонтальный масштаб log10, используя geom_bar - PullRequest
0 голосов
/ 19 ноября 2018

Мне нужно сложить полосу в TWh для каждого ISO3, используя шкалу log10 в TWh.

Я сгенерировал следующие строки без масштабирования журнала, но тестировал его.

Здесь код

> head(exx)
  ISO3   band        ET    TWh
  <fct> <int>     <dbl>  <dbl>
1 AFG       1 37418724. 37.4  
2 AFG       2   890119.  0.890
3 AFG       3   554229.  0.554
4 AFG       4   516820.  0.517
5 AFG       5  5773072.  5.77 
6 AFG       6   249360.  0.249

exx %>%
  ggplot(aes(x = reorder(ISO3, TWh, sum), y = TWh, fill = as.factor(band))) +
  geom_bar(stat = "identity") +
  theme_bw() +
  theme(panel.grid = element_blank()) +
  xlab("") + 
  ylab("") +
  guides(fill=FALSE) +
  guides(fill = guide_legend(nrow = 3, title = "band")) +
  theme(legend.justification = c(1, 0),
    legend.position = c(0.995, 0.001),
    text = element_text(size = 12)) +
  theme(axis.text.x = element_text(size = 10, color="black"),
    axis.text.y = element_text(size = 7, color="black"),
    panel.grid.major.x = element_line( size=.1, color="grey", linetype = 2 )) +
  #here i tested
  #scale_y_continuous(trans=log10_trans())+
  coord_flip() + 
  scale_fill_npg()

Здесь Данные

Здесь ожидаемая цифра (здесь мне нужно добавить шкалу лога) enter image description here

Это то, что я получил при тестировании масштаба журнала.Кроме того, как можно интерпретировать этот рис?enter image description here

Любая помощь очень ценится.Я попытался этот ответ , но он не работает.

# Измененная попытка

Я умножил на 1000000, а затем применил следующее:

scale_y_continuous(trans=log10_trans(), 
                 #breaks = trans_breaks('log10', function(x) 10^x))+#, 
                 labels = trans_format('log10', math_format(10^.x)))+

и получите это

enter image description here

Я хотел бы сейчас получить оригинальные ярлыки в перерывах.

...