我尝试使用ggplot'
s geom_histogram
生成直方图,根据渐变为条形图着色,然后记录它们。
以下是代码:
library(ggplot2)
set.seed(1)
df <- data.frame(id=paste("ID",1:1000,sep="."),val=rnorm(1000),stringsAsFactors=F)
bins <- 10
cols <- c("darkblue","darkred")
colGradient <- colorRampPalette(cols)
cut.cols <- colGradient(bins)
df$cut <- cut(df$val,bins)
df$cut <- factor(df$cut,level=unique(df$cut))
然后,
ggplot(data=df,aes_string(x="val",y="..count..+1",fill="cut"))+
geom_histogram(show.legend=FALSE)+
scale_color_manual(values=cut.cols,labels=levels(df$cut))+
scale_fill_manual(values=cut.cols,labels=levels(df$cut))+
scale_y_log10()
从fill
中删除aesthetics
:
ggplot(data=df,aes_string(x="val",y="..count..+1"))+
geom_histogram(show.legend=FALSE)+
scale_color_manual(values=cut.cols,labels=levels(cuts))+
scale_fill_manual(values=cut.cols,labels=levels(cuts))+
scale_y_log10()
任何想法为什么直方图条在两个图之间有所不同,并使第一个图与第二个图相似?
答案 0 :(得分:2)
OP 尝试使用ggplot的geom_histogram生成直方图,根据渐变颜色显示条形图...
OP已经完成了分箱(有10个分箱),但随后正在调用?geomhistogram
,它默认使用30个分箱进行分箱(参见geom_bar()
)。
使用cut
代替val
代替ggplot(data = df, aes_string(x = "cut", y = "..count..+1", fill = "cut")) +
geom_bar(show.legend = FALSE) +
scale_color_manual(values = cut.cols, labels = levels(df$cut)) +
scale_fill_manual(values = cut.cols, labels = levels(df$cut)) +
scale_y_log10()
geom_histogram()
图表变为:
使用带有填充条形的 Adapter1.OnDayDeleted += (o,e) =>
{
Day day = e.Day;
DM.ListOfDays.Remove(day);
Adapter1.NotifyDataSetChanged();
Adapter1 = new Adapters.DayObject(Activity, DM.ListOfDays);
ListViewDays.Adapter = Adapter1;
Helpers.Common.SetListViewHeightBasedOnChildren(ListViewDays);
};
不那么简单,如this answer和How to fill histogram with color gradient?中{{3}}所述