2016-10-21 3 views
0

I Frequenz mit dem folgenden Code auf einem gestapelten BalkendiagrammGestapelte Balkendiagramm in highcharter mit geschmolzenem Daten

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 

zu plotten versuche ich dies mit ggplot ohne viel Zwang plotten kann. Ist es möglich, dies in der highcharter ohne zu viel Zwang (zum Beispiel die 4 Merge-Anweisungen) zu tun. Die Antwort auf diese post funktioniert nicht für mich.

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()) 

Antwort

4

hchart, in Datenrahmen verwendet wird, ist ähnlich wie qplot. hchart versuchen, das gleiche Verhalten wie qplot zu haben.

So, wie über dieses ?:

hchart(visits, "column", x = as.Date(VisitDate), y = freq, group = Clinic) %>% 
    hc_plotOptions(column = list(
    dataLabels = list(enabled = FALSE), 
    stacking = "normal", 
    enableMouseTracking = TRUE) 
) 

Hope this Hilfe.

+0

Danke. Aber für hchart bekomme ich einen Fehler – earthlink

+0

Fehler: Objekte der Klasse/type data.frame werden von hchart (noch) nicht unterstützt. – earthlink

+1

Halten Sie Ihre Pakete auf dem neuesten Stand! ;) 'install.packages (" highcharter ")' – jbkunst

Verwandte Themen