如何在ggplot2中设置y轴和x轴的原点/截取?
x轴的线应恰好位于y=Z
。
使用Z=0
或其他给定值。
答案 0 :(得分:155)
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
处的点。
答案 1 :(得分:10)
只需将这些添加到您的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'
可能导致条形图完全离开图表(例如,如果其值为零,并且您将轴从零开始),那么您可能看不到它,甚至可能不知道它在那里。我建议先完整地绘制数据,检查,然后使用以上技巧来改善绘图的美观性。
答案 2 :(得分:1)
我从链接中的Hadley Wickham的回答中了解到 here表示,在ggplot2中,轴不可能位于图形的中间。该网址中的某人建议删除标准轴,然后自行构建。
答案 3 :(得分:1)
在最新版本的ggplot2中,这可能更容易。
import React from 'react';
import { graphql } from 'gatsby';
const BlogPosts = (props) => {
const { post } = props.post;
return (
<React.Fragment>
<h1>{post.title}</h1>
</React.Fragment>
)};
export default BlogPosts;
有关更多详细信息,请参见p <- ggplot(mtcars, aes(wt, mpg))
p + geom_point()
p+ geom_point() + scale_x_continuous(expand = expansion(mult = c(0, 0))) + scale_y_continuous(expand = expansion(mult = c(0, 0)))
。