我正在尝试使用分位数来限制x轴的前99个分位数,以获得类似于下面的散点图(仅用于说明目的 - 右边的绘图是使用xlim上的固定限制0,500创建的):
ggplot(aes(x=volume,y=log10(price)),data= diamonds)+
geom_point()+
coord_cartesian(xlim = c(0,500))
ggplot(aes(x=volume,y=log10(price)),data= diamonds)+
geom_point()+
coord_cartesian(xlim = c(quantile(diamonds$volume<diamonds$volume, 0.99)))
产生这个:
和
ggplot(aes(x=volume,y=log10(price)),data= diamonds)+
geom_point()+
coord_cartesian(xlim = c(quantile(diamonds$volume, 0.99)))
产生这个:
我想避免篡改实际数据或创建新数据集。谁能指出我出错的地方?
scale_x_continuous(limits = c(quantile(diamonds$volume, 0.99)))
产生非常相似的结果,所以我怀疑问题是我如何定义分位数。
答案 0 :(得分:2)
问题是xlim
期望一个包含两个元素的向量:min和max。
max由quantile(diamonds$x, 0.99)
定义
而min可以是min(diamonds$x)
library(ggplot2)
data(diamonds)
ggplot(aes(x=x,y=log10(price)),data= diamonds)+
geom_point()+
coord_cartesian(xlim = c(min(diamonds$x), quantile(diamonds$x, 0.99)))
我使用x
代替volume
,因为我的diamonds
(2.2.1)版本中的ggplot2
数据集不包含volume
列