调整条形图 y 轴,以便可以很好地绘制更高的 y 值
Adjust barchart y-axis so that vastly higher y-values can be plotted nicely
我正在使用 R 和 ggplot2 创建一个包含一些值的条形图。创建情节和一切都很好,但是,我的 y 值主要在一个一般值范围内,其中混合了一两个高得多的值。
澄清一下,我的 y 值看起来类似于:
[10, 12, 13, 5000, 14, 11]
y = c(10, 12, 13, 5000, 14, 11)
(为了完整起见:x 值是简单的时间增量,例如 1,2,3,4,5)
创建绘图和一切都很好,除了由于高得多的值,整个图表非常 "zoomed out"。我知道我可以通过设置限制来过滤掉这些更高的值,但是我想将它们保留在图中,因此想知道是否有任何方法可以在 y 尺度中设置一个可见的 "break" 以便它继续进行一个在较高值范围内的值。
我使用绘画创建了一张小图片来阐明我的意思:
有什么方法可以使用 R/ggplots2 做到这一点吗?或者,我也想知道是否有人对如何很好地绘制这些值而不必单独记录它们有任何其他想法。
谢谢,
克林林
根据 y
的值创建一个新的二进制变量可以解决这个问题。为此,必须事先建立一个阈值。
library(ggplot2)
threshold <- 25
df1$big <- factor(df1$y <= threshold, labels = c("> 25", "<= 25"))
ggplot(df1, aes(x, y)) +
geom_col() +
facet_wrap(~ big, "free_y", nrow = 2)
那么新的变量就可以去掉了
df1$big <- NULL
数据.
df1 <- data.frame(x = LETTERS[1:6],
y = c(10, 12, 13, 5000, 14, 11))
我正在使用 R 和 ggplot2 创建一个包含一些值的条形图。创建情节和一切都很好,但是,我的 y 值主要在一个一般值范围内,其中混合了一两个高得多的值。
澄清一下,我的 y 值看起来类似于:
[10, 12, 13, 5000, 14, 11]
y = c(10, 12, 13, 5000, 14, 11)
(为了完整起见:x 值是简单的时间增量,例如 1,2,3,4,5)
创建绘图和一切都很好,除了由于高得多的值,整个图表非常 "zoomed out"。我知道我可以通过设置限制来过滤掉这些更高的值,但是我想将它们保留在图中,因此想知道是否有任何方法可以在 y 尺度中设置一个可见的 "break" 以便它继续进行一个在较高值范围内的值。
我使用绘画创建了一张小图片来阐明我的意思:
有什么方法可以使用 R/ggplots2 做到这一点吗?或者,我也想知道是否有人对如何很好地绘制这些值而不必单独记录它们有任何其他想法。
谢谢,
克林林
根据 y
的值创建一个新的二进制变量可以解决这个问题。为此,必须事先建立一个阈值。
library(ggplot2)
threshold <- 25
df1$big <- factor(df1$y <= threshold, labels = c("> 25", "<= 25"))
ggplot(df1, aes(x, y)) +
geom_col() +
facet_wrap(~ big, "free_y", nrow = 2)
那么新的变量就可以去掉了
df1$big <- NULL
数据.
df1 <- data.frame(x = LETTERS[1:6],
y = c(10, 12, 13, 5000, 14, 11))