我有连续的值(请参阅下面的数据中的cols log),我想用ggplot2在char中画线。我的代码实际上可以完成任务,但是我的问题是y轴的值。实际上,这些值分布不均,因此该图对比例尺产生了错误的视觉感知(例如,请参见下图第三张图中的绿线和蓝线之间的空间)

如何解决此问题?是否有一种方法可以迫使y轴根据离散值(例如(0,1,2,3,4,5,6,7))中的数据来组织计数值?

这是我的数据

motor;trace;rules;time;log
monetDBIE;1m;R2;1556;3,1
monetDBIE;1m;R1;1590;3,2
monetDBIE;1m;RDFS;15999;4,2
monetDBIE;2m;R2;3319;3,5
monetDBIE;2m;R1;3645;3,5
monetDBIE;2m;RDFS;31239;4,4
monetDBIE;5m;R2;9283;3,9
monetDBIE;5m;R1;10398;4
monetDBIE;5m;RDFS;85806;4,9
Jena;1m;R1;227;2,3
Jena;1m;R2;1203228;6
Jena;1m;RDFS;21;1,3
Jena;2m;R1;321;2,5
Jena;2m;R2;5099199;6,7
Jena;2m;RDFS;21;1,3
Jena;5m;R1;629;2,7
PGSQLIE;1m;R1;8149;3,9
PGSQLIE;1m;R2;6548;3,8
PGSQLIE;1m;RDFS;66116;4,8
PGSQLIE;2m;R1;17029;4,2
PGSQLIE;2m;R2;22523;4,3
PGSQLIE;2m;RDFS;81155;4,9
PGSQLIE;5m;R1;33483;4,5
PGSQLIE;5m;R2;1504944;6,1
PGSQLIE;5m;RDFS;891532;5,9

这是我的ggplot2代码
require("ggplot2")

w <- read.csv(file="saturation/saturation.csv", head=TRUE, sep=";")

p <- ggplot(data=w, aes(x=trace, y=log, colour=motor, shape=motor))

p <- p + geom_point(size=4)

p <- p + geom_line(size=1,aes(group=motor))

p <- p + geom_text(aes(label=time), hjust=-0.2, vjust=1)

p <- p + ggtitle("Insertion des triplets (R1, R2) et saturation RDFS dans triplestores")

p <- p + scale_fill_continuous(guide = guide_legend(title = NULL))

p <- p + facet_grid(rules~.)

p <- p + theme_bw()

postscript(file = 'saturation.vs.eps')

print (p)

最佳答案

在这种情况下,您真的要离散的y刻度吗?如果将w$log更改为数字,则图形将“正确”格式化:

# Convert log variable to numeric and substitute commas with decimals
w$log <- as.numeric(sub(",", ".", w$log, fixed=TRUE))

ggplot(data=w, aes(x=trace, y=log, colour=motor, shape=motor)) +
  geom_point(size=4) +
  geom_line(size=1,aes(group=motor)) +
  geom_text(aes(label=time), hjust=-0.2, vjust=1) +
  ggtitle("Insertion des triplets (R1, R2) et saturation RDFS dans triplestores") +
  scale_fill_continuous(guide = guide_legend(title = NULL)) +
  facet_grid(rules~.) +
  theme_bw()

如果您坚持使用离散的y比例尺,则可以使用scale_y_discrete(breaks=0:7, labels=0:7)

仅供参考-您可能想在show_guide = FALSE中添加geom_text以从图例中删除a ...即geom_text(aes(label = time), hjust=-0.2, vjust=1, show_guide=FALSE)

关于r - ggplot2-如何在离散比例轴值中绘制连续值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29418817/

10-12 17:47