我对ggplot条形图有点问题。
我想用ggplot2制作一个条形图,以便在几个月内比较我的4种股票的Svolumes。
我有两个问题:
第一个是我的y轴错了。我的图表/数据似乎是正确的,但是y轴不是"跟随"因为我认为它将包含另一个规模...我将不得不"总计"我的数据集svolumes的数量,我认为这是写我的svolumes值。我不知道如何解释,但我希望我的数据对应于图中的所有数据,如10,20等,直到我最高的svolume总和。
有我的代码:
Date=c(rep(data$date))
Subject=c(rep(data$subject))
Svolume=c(data$svolume)
Data=data.frame(Date,Subject,Svolume)
Data=ddply(Data, .(Date),transform,pos=cumsum(as.numeric(Svolume))-(0.5*(as.numeric(Svolume))))
ggplot(Data, aes(x=Date, y=Svolume))+
geom_bar(aes(fill=Subject),stat="identity")+
geom_text(aes(label=Svolume,y=pos),size=3)
并且有我的情节:
我帮助解决了问题here
最后,我怎么能为每个月制作相同的情节呢?我不知道如何获得每月的价值,以便有一个更易读的条形图,因为我们无法在这里阅读任何内容...
如果您对我有其他想法,我会很乐意接受任何想法和建议!也许与折线图相同会更具可读性......?或者每个股票的条形图可能相同? (我不知道如何获得每个股票的价值......)
我刚刚找到了如何使用直线进行操作....但是我的y轴又错了,而且它的可读性不高......
感谢您的帮助! :)
答案 0 :(得分:2)
尝试在ggplot
功能之前添加以下行。您的y轴看起来像character
。
[edit] 合并@ user20650的评论,先添加as.character()
,然后转换为numeric
。
Data$Svolume <- as.numeric(as.character(Data$Svolume))
要为每个月生成相同的图表,您可以先添加月份变量:Data$Month <- month(as.Date(Date))
。然后将facet
添加到您的ggplot对象。
ggplot(Data, aes(x=Date, y=Svolume) +
...
+ facet_wrap(~ Month)
例如,您的条形图代码为:
Data$Svolume <- as.numeric(as.character(Data$Svolume))
Data$Month <- month(as.Date(Date))
ggplot(Data, aes(x=Date, y=Svolume)) +
geom_bar(aes(fill=Subject),stat="identity") +
geom_text(aes(label=Svolume,y=pos),size=3) +
facet_wrap(~ Month)
您的折线图代码为:
Data$Svolume <- as.numeric(as.character(Data$Svolume))
Data$Month <- month(as.Date(Date))
ggplot(Data, aes(x=Date, y=Svolume, colour=Subject)) +
geom_line() +
facet_wrap(~ Month)