【发布时间】:2016-09-23 04:31:27
【问题描述】:
我有一个大型数据集,其中包含如下数据:
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 上绘制三个图:
- 相对于年龄的粗率(始终是 y 轴)
- 针对种族的粗率
- 相对于性别的粗率
我得到了图,但它是一个盒须图,上面有点,这不是我想要的。我只想绘制点,即散点图。
我使用的代码是:
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")
我不明白我做错了什么,因为通常当我这样做时,我会得到一个散点图,而不是上面有点的盒须图。
感谢您的任何帮助
【问题讨论】:
-
当 y 是一个因子时,R 倾向于绘制箱线图。如果您需要散点图,请尝试在不使用 y 轴但指定不同颜色或点形状的情况下进行绘图,即使用像
plot(melanoma$Crude_Rate, col = melanoma$Gender, ...)这样的 smth,其中 ... 代表任何其他绘图参数。另一个建议是使用数据子集并将它们绘制在不同的图表上。 -
@Dmitry Grekov 谢谢,我试过 plot(melanoma$Crude_Rate, col = melanoma$Gender) 现在我得到了一个散点图,但不幸的是 x 轴标签不是女性和男性的数字。
-
纵轴现在是 Crude_Rate 并且水平标签只是观察的索引。您可以使用
legend()指定用某种颜色绘制的性别。 -
这是一个不错的图表,但不幸的是,我希望将年龄、性别和种族分别作为三个图表的横轴(x 轴)