我正在尝试使用以下代码在堆叠的条形图上绘制频率
x = data.frame(
Clinic = c('A','A','A','A','A','A','B','B','B','B','B','C','C','C','C'),
Doctor = c('Kooner','Halliday','Katz','Alizadeh','Patel','Baxter','Kooner','Halliday','Patel','Katz','Alizadeh','Baxter','Katz','Patel','Alizadeh'),
VisitDate = c('2014-06-01','2014-06-01','2014-06-15','2014-07-01','2014-07-01','2014-07-01','2014-07-01','2014-07-01','2014-07-01','2014-08-01','2014-08-01','2014-07-01','2014-08-01','2014-09-01','2014-08-01')
)
allDates = data.frame(VisitDate=c('2014-06-01','2014-06-15','2014-07-01','2014-07-15','2014-08-01','2014-08-15','2014-09-01'))
library(plyr)
visits = plyr::count(x[,c(1,3)])
visits1 = merge(allDates,visits, all.x = TRUE)
library(highcharter)
hc = highchart() %>%
hc_chart(type = "column") %>%
hc_yAxis(title = list(text = "Visits")) %>%
hc_xAxis(categories = allDates$VisitDate) %>%
hc_plotOptions(column = list(
dataLabels = list(enabled = FALSE),
stacking = "normal",
enableMouseTracking = TRUE)
) %>%
hc_series(list(name="Clinic-A",data=merge(allDates,visits1[visits1$Clinic == "A", ], all.x = TRUE)[,3]),
list(name="Clinic-B",data=merge(allDates,visits1[visits1$Clinic == "B", ], all.x = TRUE)[,3]),
list(name="Clinic-C",data=merge(allDates,visits1[visits1$Clinic == "C", ], all.x = TRUE)[,3])
)
hc
我可以在ggplot
没有太多强制的情况下进行绘制。是否可以在highcharter
没有过多强制的情况下执行此操作(例如4个merge语句)。这篇文章的答案对我不起作用。
library(ggplot2)
library(scales)
ggplot()+
geom_bar(aes(y = freq, x = as.Date(VisitDate), fill = Clinic),data = visits, stat = "identity")+
theme(legend.position = "bottom", legend.direction = "horizontal", legend.title = element_blank())+
scale_x_date(date_breaks = "1 month")+
scale_y_continuous(breaks = pretty_breaks())
hchart
,在dataframe中使用的与相似qplot
。hchart
尝试具有与相同的行为qplot
。
那么,如何呢?:
hchart(visits, "column", x = as.Date(VisitDate), y = freq, group = Clinic) %>%
hc_plotOptions(column = list(
dataLabels = list(enabled = FALSE),
stacking = "normal",
enableMouseTracking = TRUE)
)
希望对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句