ggplot2 y-axis ticks not showing up on a log scale

家住魔仙堡 提交于 2019-12-02 04:59:26

问题


I am trying to use ggplot2 to create a boxplot graph but I am having trouble getting the ticks to show up as it does in the examples of the ggplot2 webiste.

Here is some fake data of tastiness of fruits:

apples <- data.frame(fruit=c(rep("apple", 30)), taste=runif(30, 30, 50)
banana <- data.frame(fruit=c(rep("banana", 30)), taste=runif(30, 300, 500))
orange <- data.frame(fruit=c(rep("orange", 30)), taste=runif(30, 3000, 5000))
fruits <- rbind(apples,banana,orange)

If I plot as in the ggplot2 website example the y-axis scale should looks something like:

Instead I get an axis like:

ggplot(fruits, aes(fruit, taste) ) +  geom_boxplot() + scale_y_log10()

How would I get the y-axis scale on scientific notation?


回答1:


I'm assuming that you are using the new 0.9.0 version of ggplot2, which underwent a large amount of changes. This happens to be one of them, I believe.

If I recall correctly, enough people complained about the exponential format being the default, that this was changed. As per the transition guide you can achieve the same effect via:

library(ggplot2)
library(scales)
ggplot(fruits, aes(fruit, taste) ) +  
    geom_boxplot() + 
    scale_y_log10(breaks = trans_breaks('log10', function(x) 10^x),
                  labels = trans_format('log10', math_format(10^.x)))


来源:https://stackoverflow.com/questions/9651903/ggplot2-y-axis-ticks-not-showing-up-on-a-log-scale

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!