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