【问题标题】:ggplot2 R, Fixing much values in axis (Line-plot)ggplot2 R,在轴上固定很多值(线图)
【发布时间】:2016-12-10 04:03:41
【问题描述】:

我无法读取我的 y 轴,因为它有很多值。我尝试旋转它,但它不像我想要的那样工作,这也不是我想做的事情。

我想指定轴中的值,例如从 20 到 30,也许步长为 0.1。

但是值的长度是 1000,所以我猜上面建议的范围不起作用(?)。 例如:

runNumbers <- seq(from = 1, to = 1000)
tempVector <- seq(from = 20.0010, to = 30, by = 0.01) 
plotData   <- data.frame(RunNumber = runNumbers, temp = tempVector,
myUglyPlot <- ggplot(data = plotData, mapping = aes(x = RunNumber, y = temp, group = 1)) +      geom_line() 
#
#http://stackoverflow.com/questions/14428887/overflowing-x-axis-ggplot2?noredirect=1&lq=1 
require(scales) # for removing scientific notation
# manually generate breaks/labels
labels                   <- seq(from = 0, to = 30, length.out = 1000)
# and set breaks and labels    
myUglyPlot <- myUglyPlot + scale_y_discrete(breaks = labels, labels = as.character(labels))
# And now my graph is without labels, why?

还有其他方法可以做到这一点,而无需旋转我的标签?或者我在另一个问题的代码中做错了什么(我试图按照他的做法......)?

稍后我将有 10 000 个值,所以我真的需要改变它,我想要一个可读的轴,我可以把间隔放进去。

也许我缺少一些简单的概念,我尝试搜索和阅读 R Graphics Cookbook,但目前没有成功。

感谢您的宝贵时间。

更新 我正在尝试使用休息时间,感谢您的帮助。这是我现在正在做的事情(仅此):

myUglyPlot   <- ggplot(data = plotData, mapping = aes(x = RunNo, y = t_amb, group = 1)) + geom_line()
myUglyPlot   <- myUglyPlot + scale_y_discrete(breaks=seq(from = 1, to = 50, by = 0.01))

但是我的它并没有给我任何休息。见图。

【问题讨论】:

标签: r ggplot2 line-plot


【解决方案1】:

您快到了。由于您的 y 轴是连续值,因此您需要使用 scale_y_continuous 而不是 scale_y_discrete

myUglyPlot <- myUglyPlot + scale_y_continuous(breaks = labels)

【讨论】:

  • 真的是连续值吗?从数学上讲,这不是连续的吗?还是我错了?我也得到了这个Discrete value supplied to continuous scale,当我按照你说的做的时候,我之前试过:)
  • @Smrow 您的示例数据集将 temp 作为数字变量,因此使用连续比例而不是离散比例应该可以正常工作(并且在您的 myUglyPlot 示例中也是如此)。跨度>
  • 非常感谢,我想我现在的问题是,在我的代码中的“真实数据”中,我有字符串而不是数字数据,因为它是从文件中读取的。现在它确实像你说的那样工作@Dee。很抱歉之前没有意识到这一点,我的笨拙。也谢谢你,奥史密斯!
猜你喜欢
  • 2016-01-31
  • 2022-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
相关资源
最近更新 更多