首页 > 解决方案 > 如何创建带有负轴和正轴的散点图?

问题描述

我试图在 x 轴和 y 轴上绘制负值和正值以查看分布。但是,ggplot2将所有值绘制在轴的一侧,甚至是负值。我想做这样的事情,但上面的点表示基于我的数据的分布:我应该怎么做?

在此处输入图像描述

这是一个示例数据集:

df <- structure(list(States = structure(c(1L, 3L, 2L, 4L), 
                                    .Label = c("AP", "Gujarat", "Punjab", "Rajasthan"), 
                                    class = "factor"), 
                 a = c(20, 45, -15, 10), 
                 b = c(14, -67, 45, -5)), 
            class = "data.frame", 
            row.names = c(NA, -4L))

这是我的代码:

library(tidyverse)
library(ggplot2)

df1 <- df

p <- ggplot(df1, aes(a, b), scale="globalminmax") +
  geom_point() +
  theme_minimal()

p

标签: rggplot2scatter-plot

解决方案


一种解决方法是在 0 处添加一条垂直和水平线

ggplot(df1, aes(a, b), scale="globalminmax") +
  geom_vline(xintercept = 0, linetype = 2) +
  geom_hline(yintercept = 0, linetype = 2) +
  geom_point() +
  theme_minimal()

推荐阅读