ggplot scale_uFILL_*force标签位于导轨顶部和底部
我正在做一个ggplot scale_uFILL_*force标签位于导轨顶部和底部,r,ggplot2,R,Ggplot2,我正在做一个刻度填充的对数变换,刻度顶部没有标记。对于线性比例,这不是问题,因为它是等距的,但对于对数比例,必须显示最大值 在未知值的情况下,是否有办法强制执行该行为 编辑:reprex suppressPackageStartupMessages(require(tidyverse)) diamonds %>% mutate(price = price^2) ggplot(aes(x = carat, y = depth, fill = price)) + geom_
刻度填充的对数变换,刻度顶部没有标记。对于线性比例,这不是问题,因为它是等距的,但对于对数比例,必须显示最大值
在未知值的情况下,是否有办法强制执行该行为
编辑:reprex
suppressPackageStartupMessages(require(tidyverse))
diamonds %>%
mutate(price = price^2)
ggplot(aes(x = carat, y = depth, fill = price)) +
geom_point() +
scale_fill_continuous(trans = "log")
由(v0.2.1)于2019-03-06创建
所需行为:价格刻度的顶端(浅蓝色)有一个用于价格最大值的标签。连续scale.*\u continuous
中的中断
参数接受以下内容之一(添加强调):
NULL
表示无中断
弃权()
用于转换对象计算的默认中断
- 位置的数字向量
- 将限制作为输入并返回中断作为输出的函数
您可以尝试以下方法:
p <- diamonds %>%
ggplot(aes(x = carat, y = depth, fill = price)) +
geom_point(shape = 21)
p +
scale_fill_continuous(
trans = "log",
breaks = function(x) seq(x[1], x[2], length.out = 5))
以上只是为了举例说明。根据您的使用情况,您可能需要修改函数以获得不同的中断数、更好的数字格式(例如,四舍五入到特定的小数位数)等。是否获得数据?(示例,我的意思是)您可能希望尝试在缩放填充*
函数中明确指定限制
和中断
,寻求调试帮助的问题(“此代码为什么不工作?”)必须包括所需的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建一个最小的、完整的和可验证的示例。@42-由于shapefile中需要所有数据,所以很难对贴图执行reprex。另外,这是一个非常简单的问题。编辑-我收回它,当然我可以创建一个没有映射的reprex,对不起。@divibisan据我所知,没有办法动态地这样做,正如我在问题中所说的,我需要能够在值未知时这样做。
p +
scale_fill_continuous(
trans = "log",
breaks = function(x) exp(seq(log(x[1]), log(x[2]), length.out = 5)))