Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 断点不符合比例y连续()_R_Ggplot2_Axis Labels - Fatal编程技术网

R 断点不符合比例y连续()

R 断点不符合比例y连续(),r,ggplot2,axis-labels,R,Ggplot2,Axis Labels,我试图绘制一些y值较大的数据: p <- seq(0.1, 0.9, 0.1) cost <- 1/(p^2)^15 * 15 * 0.1 data <- data.frame(x=p, y=cost) ggplot(data, aes(x=x, y=y)) + geom_point(shape=18, color="blue")+ scale_y_continuous(name="Cost", breaks=c(0, 1e5, 1e10, 1e15, 1e20, 1

我试图绘制一些y值较大的数据:

p <- seq(0.1, 0.9, 0.1)
cost <- 1/(p^2)^15 * 15 * 0.1
data <- data.frame(x=p, y=cost)
ggplot(data, aes(x=x, y=y)) + 
  geom_point(shape=18, color="blue")+
  scale_y_continuous(name="Cost", breaks=c(0, 1e5, 1e10, 1e15, 1e20, 1e25, 1e30))

p您最好的选择是重新调整数据的比例,比如这里的对数。您可以在图形的标签中表示这一点,并且仍然提供未缩放的y轴标签

breaks=c(0、1e5、1e10、1e15、1e20、1e25、1e30)
ggplot(数据,aes(x=x,y=log(y))+
几何点(形状=18,颜色=“蓝色”)+
连续缩放(name=“Cost”,
断裂=原木(断裂),
标签=中断)
更简单,有点生锈:

ggplot(数据,aes(x=x,y=y))+
几何点(形状=18,颜色=“蓝色”)+
连续缩放(name=“Cost”,
中断=c(0、1e5、1e10、1e15、1e20、1e25、1e30),
trans=“log”)

切换到日志10:
缩放日志10(name=“Cost”,breaks=c(0,1e5,1e10,1e15,1e20,1e25,1e30))
?谢谢!这是一件已知的事情,您不能手动缩放ggplot中的轴超过某个点吗?只需调用
scale\u y_continuous
不会缩放轴,对
breaks
的调用只指定应在当前比例上设置轴的位置。但这提醒了我,您可以使用
trans
参数指定转换,这样就可以使用比我最初提供的更简单的解决方案。很好!简单的解决方案当然很酷,但我想知道为什么我设置未转换的中断的尝试失败了?原因很简单,因为图表不能合理地显示
1e30
和其他未标度的中断。您可以在图形的左下角看到文本中的重叠,其他所有的中断都被塞入其中。