【发布时间】:2012-11-21 23:41:18
【问题描述】:
如何在ggplot2中设置y轴和x轴的原点/截距?
x 轴的直线应该正好在y=Z。
使用Z=0 或其他给定值。
【问题讨论】:
如何在ggplot2中设置y轴和x轴的原点/截距?
x 轴的直线应该正好在y=Z。
使用Z=0 或其他给定值。
【问题讨论】:
xlim 和 ylim 不要在这里剪。您需要使用expand_limits、scale_x_continuous 和scale_y_continuous。试试:
df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for
p + scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))
您可能需要稍作调整以确保点不会被截断(例如,请参见 x = 5 和 y = 5 处的点。
【讨论】:
scale_x_continuous(expand = c(0, 0), limits = c(0,5)),不知何故,没有它它不起作用
expand=expand_scale(mult=c(0,0.1)) 这样的东西,所以你仍然可以在上端获得填充:stackoverflow.com/a/59056123/8400969
只需将这些添加到您的 ggplot 中:
+ scale_x_continuous(expand = c(0, 0), limits = c(0, NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
df <- data.frame(x = 1:5, y = 1:5)
p <- ggplot(df, aes(x, y)) + geom_point()
p <- p + expand_limits(x = 0, y = 0)
p # not what you are looking for
p + scale_x_continuous(expand = c(0, 0), limits = c(0,NA)) +
scale_y_continuous(expand = c(0, 0), limits = c(0, NA))
最后,非常小心不要无意中将数据排除在图表之外。例如,position = 'dodge' 可能会导致条形图完全离开图表(例如,如果它的值为零并且您从零开始轴),因此您可能看不到它,甚至可能不知道它在那里。我建议先完整绘制数据,检查,然后使用上面的技巧来提高绘图的美感。
【讨论】: