Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中绘制不是长方体和胡须图的图_R_Plot_Dataset - Fatal编程技术网

如何在R中绘制不是长方体和胡须图的图

如何在R中绘制不是长方体和胡须图的图,r,plot,dataset,R,Plot,Dataset,我有一个大型数据集,其中包含如下数据: Age Ethnicity Gender Crude_Rate 20-24 Pacific Islander Female 39.2 55-59 Caucasian Male 100.3 60-64 African Female

我有一个大型数据集,其中包含如下数据:

      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")

黑色素瘤如果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))
#一个可复制的示例
种子(42)

x如果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))
#一个可复制的示例
种子(42)

x我将尝试向您展示如何根据年龄绘制粗利率。类似地,您可以绘制其他绘图。为了简单起见,我已经一步一步地展示了创建过程

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)
input=NULL
输入$Age=rep(c(“20-24”、“55-59”、“60-64”、“30-34”),4)
输入$Crude\U Rate=runif(16)
输入=as.data.frame(输入)
图书馆(dplyr)
按年龄百分比
组别(年龄)%>%
总结(n=n(),粗油率=平均值(粗油率))

绘图1我将尝试向您展示如何绘制粗利率与年龄的关系图。类似地,您可以绘制其他绘图。为了简单起见,我已经一步一步地展示了创建过程

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)
input=NULL
输入$Age=rep(c(“20-24”、“55-59”、“60-64”、“30-34”),4)
输入$Crude\U Rate=runif(16)
输入=as.data.frame(输入)
图书馆(dplyr)
按年龄百分比
组别(年龄)%>%
总结(n=n(),粗油率=平均值(粗油率))


plot1您还可以使用car软件包和功能散点图。这将为您提供图表上的额外内容(如方框、胡须和平滑器),但这些内容可以轻松删除

您还可以使用car软件包和功能散点图。这将为您提供图表上的额外内容(如方框、胡须和平滑器),但这些内容可以轻松删除

当y是一个因子时,R倾向于绘制一个方框图。如果需要散点图,请尝试在不使用y轴的情况下进行打印,但指定不同的颜色或点形状,即使用smth like
plot(melanoma$rough\u Rate,col=melanoma$Gender,…)
其中。。。表示任何其他绘图参数。另一个建议是使用数据子集并将它们绘制在不同的图表上。@Dmitry Grekov谢谢,我尝试了绘图(黑色素瘤$rough_Rate,col=黑色素瘤$Gender),现在我得到了一个散点图,但不幸的是,x轴标签不是女性和男性的数字。真实轴现在用于粗率,水平标签只是观察的指标。您可以使用
legend()
指定以特定颜色绘制的性别。这是一个很好的图形,但不幸的是,问题是我希望将年龄、性别和种族分开,因为三个图形上的横轴(x轴)当y是一个因子时,R倾向于绘制方框图。如果需要散点图,请尝试在不使用y轴的情况下进行打印,但指定不同的颜色或点形状,即使用smth like
plot(melanoma$rough\u Rate,col=melanoma$Gender,…)
其中。。。表示任何其他绘图参数。另一个建议是使用数据子集并将它们绘制在不同的图表上。@Dmitry Grekov谢谢,我尝试了绘图(黑色素瘤$rough_Rate,col=黑色素瘤$Gender),现在我得到了一个散点图,但不幸的是,x轴标签不是女性和男性的数字。真实轴现在用于粗率,水平标签只是观察的指标。您可以使用
legend()
指定以特定颜色绘制的性别。这是一个很好的图形,但不幸的是,问题是我希望将年龄、性别和种族分别作为三个图形的横轴(x轴)Hi Roland。谢谢你。对不起,我对R还比较陌生。我需要做些什么来更改我数据的代码?
plot.default(粗率~Gender,data=melanoma,xlim=range(as.integer(unique(melanoma$Gender)))+c(-0.4,0.4)
谢谢,所以我需要在plot.default(粗率~Gender,data=melanoma,xlim=range)之后添加任何内容吗(as.integer(unique(melanoma$Gender)))+c(-0.4,0.4))?你好,罗兰。谢谢你。对不起,我对R相当陌生。我需要做些什么来更改我数据的代码?
plot.default(rough_rate~Gender,data=melanoma,xlim=range(as.integer(unique(melanoma$Gender))+c(-0.4,0.4)…)
谢谢,那么我是否需要在plot.default(roude_Rate~Gender,data=melanoma,xlim=range(as.integer(unique(melanoma$Gender)))+c(-0.4,0.4))?谢谢!不幸的是,我在尝试时遇到了很多错误。你能详细说明一下你遇到的错误吗?你需要安装并加载ggplot2库才能使用上面的代码。它成功了,我只需要让它输入$rough_Rate=runif(361),因为我有以下类别:input$Age=rep(c)(“谢谢”)不幸的是,因为我的数据集太大了,所以变得有点乱。你知道如何将它做成一个直方图,并将粗略的比率相加吗?谢谢你!不幸的是,我在尝试时遇到了很多错误。你能详细说明你所遇到的错误吗。你需要安装并加载ggplot2库才能使用上述代码。这很有效d、 我只需要让它输入$roude\u Rate=runif(361),因为我有类别:input$Age=rep(c(“谢谢”),不幸的是,因为我的数据集太大了,有点乱。你知道如何将它做成一个包含汇总的粗利率的柱状图吗?谢谢你。谢谢你