-
Notifications
You must be signed in to change notification settings - Fork 1
Create update_datasets.go #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
support aggregation chart update.
Hi! I have a few questions.
UpdateValues (in line_chart.go and bar_chart.go) implements this: // Update entire datasets
chart.update_values(
[
{values: new_dataset_1_values},
{values: new_dataset_2_values}
],
new_labels
); I believe this is the only updating method exposed by frappe-charts at the moment? Is UpdateValues not basically aggregation updating or am I missing something (maybe I'm tired right now haha). edit: Ok I'm more awake now; I think I understand the code now. Instead of updating simply one value set at a time, it updates all the values at a time, which is like you said (aggregation data). Does this count as aggregation update then? package main
import (
charts "github.com/cnguy/gopherjs-frappe-charts"
)
func main() {
// Make bar chart
reportCountList := []float64{17, 40, 33, 44, 126, 156,
324, 333, 478, 495, 373}
barChartData := charts.NewChartData()
barChartData.Labels = []string{
"2007", "2008", "2009", "2010", "2011", "2012",
"2013", "2014", "2015", "2016", "2017",
}
barChartData.Datasets = []*charts.Dataset{
charts.NewDataset("Events", reportCountList),
}
barChartTitle := "Fireball/Bolide Events - Yearly (more than 5 reports"
barChart := charts.NewBarChart("#chart", barChartData).
WithTitle(barChartTitle).
WithHeight(180).
WithColors([]string{"orange"}).
SetIsNavigable(true).
SetIsSeries(true).
Render()
// Make line chart
lineChartValues := []float64{36, 46, 45, 32, 27, 31, 30, 36, 39, 49, 0, 0}
lineChartData := charts.NewChartData()
lineChartData.Labels = []string{
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
}
lineChartData.Datasets = []*charts.Dataset{
charts.NewDataset("", lineChartValues),
charts.NewDataset("", []float64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 12}),
}
lineChart := charts.NewLineChart("#chart-2", lineChartData).
WithHeight(180).
WithColors([]string{"green"}).
SetIsSeries(true).
Render()
// Prepare update values for event listener
moreLineData := []*charts.UpdateValueSet{
charts.NewUpdateValueSet([]float64{4, 0, 3, 1, 1, 2, 1, 2, 1, 0, 1, 1}),
charts.NewUpdateValueSet([]float64{2, 3, 3, 2, 1, 4, 0, 1, 2, 7, 11, 4}),
charts.NewUpdateValueSet([]float64{7, 7, 2, 4, 0, 1, 5, 3, 1, 2, 0, 1}),
charts.NewUpdateValueSet([]float64{0, 2, 6, 2, 2, 1, 2, 3, 6, 3, 7, 10}),
charts.NewUpdateValueSet([]float64{9, 10, 8, 10, 6, 5, 8, 8, 24, 15, 10, 13}),
charts.NewUpdateValueSet([]float64{9, 13, 16, 9, 4, 5, 7, 10, 14, 22, 23, 24}),
charts.NewUpdateValueSet([]float64{20, 22, 28, 19, 28, 19, 14, 19, 51, 37, 29, 38}),
charts.NewUpdateValueSet([]float64{29, 20, 22, 16, 16, 19, 24, 26, 57, 31, 46, 2}),
charts.NewUpdateValueSet([]float64{36, 24, 38, 27, 15, 22, 24, 38, 32, 57, 139, 26}),
charts.NewUpdateValueSet([]float64{37, 36, 32, 33, 12, 34, 52, 45, 58, 57, 64, 35}),
charts.NewUpdateValueSet([]float64{36, 46, 45, 32, 27, 31, 30, 36, 39, 49, 0, 0}),
}
testLineData := []*charts.UpdateValueSet{
charts.NewUpdateValueSet([]float64{99, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 3, 4, 5, 6, 7, 58, 9, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 3, 4, 45, 6, 7, 48, 9, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{50, 2, 3, 14, 5, 6, 7, 8, 39, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 3, 4, 5, 6, 72, 8, 29, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 3, 4, 35, 36, 7, 8, 9, 100, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 13, 24, 5, 6, 7, 8, 9, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 3, 4, 5, 6, 47, 8, 9, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 2, 53, 4, 5, 6, 7, 8, 9, 10, 11, 12}),
charts.NewUpdateValueSet([]float64{99, 22, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}),
}
barChart.AddDataSelectListener(func(event *charts.DataSelectEvent) {
updateValues := &charts.UpdateValuesArgs{
Values: []*charts.UpdateValueSet{moreLineData[event.Index], testLineData[event.Index]},
// keep labels same as before
Labels: lineChartData.Labels,
}
lineChart.UpdateValues(updateValues)
})
} |
My commit doesn't work. It's an idea. and. I try your suggestion.
week3 := []*charts.UpdateValueSet{
charts.NewUpdateValueSet([]float64{35, 40, 30, 35, 8, 52, 17}),
charts.NewUpdateValueSet([]float64{75, 50, -10, 15, 18, 32, 27}),
charts.NewUpdateValueSet([]float64{-20, 40, 30, 35, 8, 52, 17}),
charts.NewUpdateValueSet([]float64{25, 50, -10, 15, 18, 32, 27}),
}
week4 := []*charts.UpdateValueSet{
charts.NewUpdateValueSet([]float64{35, 40, 30, 35, 8, 52, 17}),
charts.NewUpdateValueSet([]float64{75, 50, -10, 15, 18, 32, 27}),
charts.NewUpdateValueSet([]float64{-20, 40, 30, 35, 8, 52, 17}),
charts.NewUpdateValueSet([]float64{25, 50, -10, 15, 18, 32, 27}),
}
week5 := []*charts.UpdateValueSet{
charts.NewUpdateValueSet([]float64{35, 40, 30, 35, 8, 52, 17}),
charts.NewUpdateValueSet([]float64{75, 50, -10, 15, 18, 32, 27}),
charts.NewUpdateValueSet([]float64{-20, 40, 30, 35, 8, 52, 17}),
charts.NewUpdateValueSet([]float64{25, 50, -10, 15, 18, 32, 27}),
}
/* Add Select Event listener to Second Chart with Third chart update data */
주간공부량차트.AddDataSelectListener(func(이벤트 *charts.DataSelectEvent) {
업데이트값 := &charts.UpdateValuesArgs{
Values: []*charts.UpdateValueSet{
week1[이벤트.Index], week2[이벤트.Index],
week3[이벤트.Index], week4[이벤트.Index],
week5[이벤트.Index],
},
// keep labels same as before
Labels: 요일별공부량차트자료.Labels,
}
요일별공부량차트.UpdateValues(업데이트값)
})
here's result. https://rawgit.com/baram204/cal-heatmap-with-gopherjs/master/src/client/ and codes here. https://github.com/baram204/cal-heatmap-with-gopherjs/blob/master/src/client/main.go |
support aggregation chart update.
usage :