我有一个大数据集,其数据如下:
Age Ethnicity Gender Crude_Rate
20-24 Pacific Islander Female 39.2
55-59 Caucasian Male 100.3
60-64 African Female 3.2
30-34 Asian Male 2.8
我试图在R上绘制三个图:
我正在寻找情节,但这是一个盒子和胡须的情节,上面有点,这不是我想要的。我想要绘制点,即散点图。
我使用的代码是:
melanoma <-read.csv("Melanoma Age.csv", header=TRUE, na.strings = c("Not Applicable"))
melanoma<-na.omit(melanoma)
plot(melanoma$Gender, melanoma$Crude_Rate,las=2, ylab="Crude Rate", xlab="Gender", main="Crude Rates for Both Genders")
plot(melanoma$Age, melanoma$Crude_Rate,las=2, ylab="Crude Rate", main="Crude Rates for Different Age Groups")
plot(melanoma$Ethnicity, melanoma$Crude_Rate,las=2, ylab="Crude Rate", main="Crude Rates for Different Ethnicities")
我不知道我做错了什么,因为通常当我这样做时,我会得到一个散点图,而不是带有高于它的点的盒子和小胡须。
感谢您提前获取任何帮助
答案 0 :(得分:0)
如果x值是因子变量,则可以生成如下散点图:
#a reproducible example
set.seed(42)
x <- factor(sample(c("A", "B"), 20, TRUE))
y <- rnorm(20)
#use plot.default explicitly to avoid using plot.factor implicitly
plot.default(y ~ x, type = "p",
xlim = range(as.integer(unique(x))) + c(-0.4, 0.4),
xaxt = "n")
axis(1, at = seq_along(levels(x)), labels = levels(x))
答案 1 :(得分:0)
我会试着告诉你如何绘制原油价格与年龄的关系。同样,您可以绘制其他图表。为简单起见,我逐步显示了创建过程
input = NULL
input$Age = rep(c("20-24","55-59","60-64","30-34"),4)
input$Crude_Rate = runif(16)
input = as.data.frame(input)
library(dplyr)
Byage <- input %>%
group_by(Age) %>%
summarise(n = n(), Crude_Rate = mean(Crude_Rate))
plot1 <-ggplot(input, aes(Age, Crude_Rate))
plot1 <-plot1 + geom_jitter(width = 0.5)
plot1 <-plot1 + geom_point(data = Byage, colour = "red", size = 4)
plot1 <-plot1 + geom_text(aes(y = -0.1, label = paste0("n = ", n)), Byage, size = 3)
这将生成一个漂亮的散点图,其中年龄组为x轴,Crude_Rate为y轴,底部各组的样本数。
ScatterPlot of Age vs Crude_Rate with each age group mean Information
答案 2 :(得分:0)
您还可以使用汽车套件和功能散点图。这将为您提供图表上的附加功能(例如,盒子和胡须以及更顺畅),但这些可以很容易地删除。