2017-04-18 24 views
0

Asssume这是数据集:řGGPLOT2:不能改变在x轴的值的名称,不会损坏图表

n value 
100000 20 
200000 30 
300000 25 
400000 40 
500000 12 

下面是创建情节的代码:

require(ggplot2) 
data <- read.table("test", sep = "\t", header = TRUE,) 
ggplot(data, aes(n, value)) + 
geom_point(aes(n,value)) + geom_line(aes(n,value)) + ylim(0,60)+ 
dev.off() 

enter image description here

我想使x轴上的值如下所示:100k,200k,300k,400k,500k。我曾尝试下面的代码:

require(ggplot2) 
data <- read.table("test", sep = "\t", header = TRUE,) 
ggplot(data, aes(n, value)) + 
geom_point(aes(n,value)) + 
geom_line(aes(n,value)) + 
ylim(0,60)+ 
scale_x_discrete(limit=c(100000,200000,300000,400000,500000), 
labels=c("100k","200k","300k","400k","500k")) 
dev.off() 

x轴的价值观很好地改变,但最左边的点勉强可以看出,同为最右边的点:

enter image description here

是有可能解决这个问题?我希望图形看起来像在第一张图片中,但只有轴轴上的名称已更改。请注意,这是一个小数据集,所以我可能会手动更改数据集内的值,但我的实际数据集非常大,这使得此方法无法实现。

+0

如果你不希望有每次写出来的标签,你可以使用'从包unit_format' *鳞*。 'scale_x_continuous(labels = scales :: unit_format(unit =“K”,scale = 1/1000,sep =“”))'' – aosmith

回答

2

使用scale_x_continuous,不scale_x_discrete

+ scale_x_continuous(limits = c(100000, 500000), 
        labels = c("100k","200k","300k","400k","500k"))