R 温度与本垒打的堆叠条形图

R 温度与本垒打的堆叠条形图,r,ggplot2,R,Ggplot2,我正试图对我的情节进行一些修改,但很难做到这一点 (1) 我想温暖,平均,和冷被填补的颜色红色,黄色和蓝色,分别 (2) 我试图使y轴读取“计数”,并将其水平写入 (3) 在图例中,我希望标题是温度,而不是变量 任何帮助做出这些改变的人都会非常感激,同时也会提出其他建议,让情节看起来更好 df <- read.table(textConnection( 'Statistic Warm Avg Cold Homers(Away) 1.151 1.028 .841

我正试图对我的情节进行一些修改,但很难做到这一点

(1) 我想温暖,平均,和冷被填补的颜色红色,黄色和蓝色,分别

(2) 我试图使y轴读取“计数”,并将其水平写入

(3) 在图例中,我希望标题是温度,而不是变量

任何帮助做出这些改变的人都会非常感激,同时也会提出其他建议,让情节看起来更好

df <- read.table(textConnection(
      'Statistic  Warm Avg Cold
      Homers(Away) 1.151 1.028 .841
      Homers(Home) 1.202 1.058 .949'), header = TRUE)

    library(ggplot2)
    library(reshape2)

    df <- melt(df, id = 'Statistic')
    ggplot(
      data = df,
      aes(
        y = value, 
        x = Statistic, 
        group = variable, 
        shape = variable, 
        fill = variable
      )
    ) +
      geom_bar(stat = "identity")

df尝试将数据重新格式化为长格式,这是正确的做法。我更喜欢使用
tidyr
包中的
gather
。还可以在“聚集”步骤中创建变量名“温度”和“计数”

下一步是将三类温度转化为一个因子,从冷到平均再到暖

现在你可以绘图了。您希望
position=“dodge”
将这些条并排放置,因为将这些值堆叠在单个条中是没有意义的。使用
scale\u Fill\u manual
指定的填充颜色

通过操纵轴.title.y
,可以旋转y轴标题

因此,将所有这些放在一起(加上黑白主题):

结果:
在这种情况下,我怀疑
Count
是否是一个合理的变量名。

尝试将数据重新格式化为长格式,这是正确的。我更喜欢使用
tidyr
包中的
gather
。还可以在“聚集”步骤中创建变量名“温度”和“计数”

下一步是将三类温度转化为一个因子,从冷到平均再到暖

现在你可以绘图了。您希望
position=“dodge”
将这些条并排放置,因为将这些值堆叠在单个条中是没有意义的。使用
scale\u Fill\u manual
指定的填充颜色

通过操纵轴.title.y,可以旋转y轴标题

因此,将所有这些放在一起(加上黑白主题):

结果:
我怀疑在这种情况下,
Count
是否是一个合理的变量名。

您几乎做到了。要将特定颜色映射到特定的因子级别,您可以使用缩放\填充\手册并创建自己的比例:

scale_fill_manual(values=c("Warm"="red", "Avg"="yellow", "Cold"="blue")) +
在ggplot中更改y轴图例也很容易:

ylab("Count") +
要更改图例标题,您可以使用:

labs(fill='TEMPERATURE') +
给我们:

ggplot(df, aes(y = value, x = Statistic, group= variable, fill = variable)) +
geom_bar(stat = "identity") +
scale_fill_manual(values=c("Warm"="red", "Avg"="yellow", "Cold"="blue")) +
labs(fill='TEMPERATURE') +
ylab("Count") +
xlab("") +
theme_bw() +
theme(axis.title.y = element_text(angle = 0, vjust = 0.5))

你就快到了。要将特定颜色映射到特定的因子级别,您可以使用缩放\填充\手册并创建自己的比例:

scale_fill_manual(values=c("Warm"="red", "Avg"="yellow", "Cold"="blue")) +
在ggplot中更改y轴图例也很容易:

ylab("Count") +
要更改图例标题,您可以使用:

labs(fill='TEMPERATURE') +
给我们:

ggplot(df, aes(y = value, x = Statistic, group= variable, fill = variable)) +
geom_bar(stat = "identity") +
scale_fill_manual(values=c("Warm"="red", "Avg"="yellow", "Cold"="blue")) +
labs(fill='TEMPERATURE') +
ylab("Count") +
xlab("") +
theme_bw() +
theme(axis.title.y = element_text(angle = 0, vjust = 0.5))

同意闪避栏:)我也喜欢它的外观!我收到的错误是没有名为“dplyr”的软件包,也没有函数“%%>”
install.packages(“dplyr”、“tidyr”)
,如果您没有它们的话。axis标签必须是一个单词吗?你说得对,计数不是y轴应该是的。同意闪避条:)我也喜欢它的样子!我收到的错误是没有名为“dplyr”的软件包,也没有函数“%%>”
install.packages(“dplyr”、“tidyr”)
,如果您没有它们的话。axis标签必须是一个单词吗?你是对的,计数不是y轴应该是什么。如果可以将值表示为总数的比例,则只应堆叠条(即,用3种颜色填充单个条)。我不认为这里是这种情况?如果可以将值表示为总值的比例,则只应堆叠这些条(即用3种颜色填充一个条)。我不认为这里是这样的?