📜  如何在 R 中的 ggplot2 中将 X 和 Y 轴值从实数更改为整数

📅  最后修改于: 2022-05-13 01:55:00.105000             🧑  作者: Mango

如何在 R 中的 ggplot2 中将 X 和 Y 轴值从实数更改为整数

在本文中,我们将讨论如何使用 R 编程语言中的 ggplot2 将 X 和 Y 轴值从实数更改为整数。让我们首先创建一个包含轴上 Real 值的图,然后将它们更改为整数,以便差异显而易见。

示例:初始图

R
library(dplyr)
library(ggplot2)
  
# dummy dataset
set.seed(10)
df <- data.frame(X = rnorm(15,mean=1.199, sd=0.7622377), 
                 Y =(rnorm(15,mean=3.057, sd= 0.4358663)))
  
df %>% 
  ggplot(aes(x = X, y = Y)) +
  geom_point()


R
library(dplyr)
library(ggplot2)
  
set.seed(10)
df <- data.frame(X = rnorm(15,mean=1.199, sd=0.7622377), 
                 Y =(rnorm(15,mean=3.057, sd= 0.4358663)))
  
df %>% 
  ggplot(aes(x = X, y = Y)) +
  geom_point()+
  scale_x_continuous(breaks =c(0,1,2))


R
library(dplyr)
library(ggplot2)
  
set.seed(10)
df <- data.frame(X = rnorm(15,mean=1.199, sd=0.7622377), 
                 Y =(rnorm(15,mean=3.057, sd= 0.4358663)))
  
df %>% 
  ggplot(aes(x = X, y = Y)) +
  geom_point()+
  scale_x_continuous(breaks =c(0,1,2))+
  scale_y_continuous(breaks =c(3))


R
library(dplyr)
library(ggplot2)
  
set.seed(10)
df <- data.frame(X = rnorm(15,mean=1.199, sd=0.7622377), 
                 Y =(rnorm(15,mean=3.057, sd= 0.4358663)))
  
custom_breaks <- function(e, num = 5)  pretty(e, num)
[round(pretty(e, num),1) %% 1 == 0]
  
df %>% 
  ggplot(aes(x = X, y = Y)) +
  geom_point()+
  scale_x_continuous(breaks = custom_breaks)+
  scale_y_continuous(breaks = custom_breaks)


输出:



正如你在上面的代码中看到的, X 和 Y 轴是实数。现在让我们看看可以将它们更改为整数值的各种方法。

方法一:将X轴的值改为整数

要将实轴值更改为整数,我们可以使用 scale_x_continuous() 或 scale_y_continuous() 函数来分别固定 x 轴和 y 轴。通过传递适当的间隔值来中断参数,可以完成工作。

示例:将 x 轴上的实数值更改为整数

电阻



library(dplyr)
library(ggplot2)
  
set.seed(10)
df <- data.frame(X = rnorm(15,mean=1.199, sd=0.7622377), 
                 Y =(rnorm(15,mean=3.057, sd= 0.4358663)))
  
df %>% 
  ggplot(aes(x = X, y = Y)) +
  geom_point()+
  scale_x_continuous(breaks =c(0,1,2))

输出:

同样,如果同时调用这两个函数,则可以更改这两个值。

句法:

示例:更改两个轴的值

电阻

library(dplyr)
library(ggplot2)
  
set.seed(10)
df <- data.frame(X = rnorm(15,mean=1.199, sd=0.7622377), 
                 Y =(rnorm(15,mean=3.057, sd= 0.4358663)))
  
df %>% 
  ggplot(aes(x = X, y = Y)) +
  geom_point()+
  scale_x_continuous(breaks =c(0,1,2))+
  scale_y_continuous(breaks =c(3))

输出:

方法二:使用自定义函数

在这里,我们将编写一个自定义函数,该函数执行将实数值转换为整数的任务。在之前的方法中,我们必须手动提供间隔,但是,在这种方法中,我们的函数自动确定间隔。该函数在内部使用产生舍入间隔的漂亮()函数。

句法:

示例:更改轴值的自定义函数

电阻

library(dplyr)
library(ggplot2)
  
set.seed(10)
df <- data.frame(X = rnorm(15,mean=1.199, sd=0.7622377), 
                 Y =(rnorm(15,mean=3.057, sd= 0.4358663)))
  
custom_breaks <- function(e, num = 5)  pretty(e, num)
[round(pretty(e, num),1) %% 1 == 0]
  
df %>% 
  ggplot(aes(x = X, y = Y)) +
  geom_point()+
  scale_x_continuous(breaks = custom_breaks)+
  scale_y_continuous(breaks = custom_breaks)

输出: