├── .gitattributes ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── demos ├── SynchronizedCharts.html ├── combo │ ├── demo.html │ └── demo.js └── synchronized-charts │ ├── demo.css │ ├── demo.html │ └── demo.js ├── docs ├── ChartOptions.md ├── DemoAreaChart.md ├── DemoBarChart.md ├── DemoBubbleChart.md ├── DemoColumnChart.md ├── DemoDrillDown.md ├── DemoHeatmap.md ├── DemoLineChart.md ├── DemoPieChart.md ├── DemoSFSalariesChart.md ├── DemoStreamingAreaChart.md ├── DemoStructureStreaming.md ├── SelectDataToPlot.md ├── StructureStreaming.md ├── TypeMapping.md ├── UseInZeppelin.md ├── UseLatestCode.md ├── basic-area-chart.png ├── demos.md ├── internal │ ├── Chart.md │ ├── MavenPublish.md │ └── Zeppelin-architecture.md ├── option.png ├── scaladocs │ ├── com │ │ ├── knockdata │ │ │ ├── package.html │ │ │ └── spark │ │ │ │ ├── highcharts │ │ │ │ ├── AppendOutputMode.html │ │ │ │ ├── CompleteOutputMode.html │ │ │ │ ├── CustomOutputMode.html │ │ │ │ ├── CustomSinkProvider.html │ │ │ │ ├── Init$.html │ │ │ │ ├── PlotOptions$.html │ │ │ │ ├── Registry$.html │ │ │ │ ├── StreamingChart$.html │ │ │ │ ├── StreamingChart.html │ │ │ │ ├── ZeppelinContextHolder.html │ │ │ │ ├── base │ │ │ │ │ ├── BaseModel.html │ │ │ │ │ ├── BasePlotOptions.html │ │ │ │ │ ├── IModel.html │ │ │ │ │ ├── JsonConversion$.html │ │ │ │ │ ├── Layout.html │ │ │ │ │ ├── Margin.html │ │ │ │ │ ├── Spacing.html │ │ │ │ │ └── package.html │ │ │ │ ├── model │ │ │ │ │ ├── Axis.html │ │ │ │ │ ├── Chart$.html │ │ │ │ │ ├── Chart.html │ │ │ │ │ ├── Code.html │ │ │ │ │ ├── ColorAxis$.html │ │ │ │ │ ├── ColorAxis.html │ │ │ │ │ ├── Credits$.html │ │ │ │ │ ├── Credits.html │ │ │ │ │ ├── Data.html │ │ │ │ │ ├── Drilldown.html │ │ │ │ │ ├── Exporting.html │ │ │ │ │ ├── Labels.html │ │ │ │ │ ├── Legend.html │ │ │ │ │ ├── Navigation.html │ │ │ │ │ ├── Pane.html │ │ │ │ │ ├── PublicApply.html │ │ │ │ │ ├── Series$.html │ │ │ │ │ ├── Series.html │ │ │ │ │ ├── Subtitle$.html │ │ │ │ │ ├── Subtitle.html │ │ │ │ │ ├── Title$.html │ │ │ │ │ ├── Title.html │ │ │ │ │ ├── Tooltip.html │ │ │ │ │ ├── XAxis$.html │ │ │ │ │ ├── XAxis.html │ │ │ │ │ ├── YAxis$.html │ │ │ │ │ ├── YAxis.html │ │ │ │ │ └── package.html │ │ │ │ └── package.html │ │ │ │ ├── package.html │ │ │ │ └── utils │ │ │ │ ├── CipherUtil$.html │ │ │ │ ├── filter$.html │ │ │ │ ├── functions$.html │ │ │ │ └── package.html │ │ └── package.html │ ├── index.html │ ├── index.js │ ├── index │ │ ├── index-a.html │ │ ├── index-b.html │ │ ├── index-c.html │ │ ├── index-d.html │ │ ├── index-e.html │ │ ├── index-f.html │ │ ├── index-g.html │ │ ├── index-h.html │ │ ├── index-i.html │ │ ├── index-j.html │ │ ├── index-k.html │ │ ├── index-l.html │ │ ├── index-m.html │ │ ├── index-n.html │ │ ├── index-o.html │ │ ├── index-p.html │ │ ├── index-q.html │ │ ├── index-r.html │ │ ├── index-s.html │ │ ├── index-t.html │ │ ├── index-u.html │ │ ├── index-v.html │ │ ├── index-w.html │ │ ├── index-x.html │ │ ├── index-y.html │ │ └── index-z.html │ ├── lib │ │ ├── arrow-down.png │ │ ├── arrow-right.png │ │ ├── class.png │ │ ├── class_big.png │ │ ├── class_diagram.png │ │ ├── class_to_object_big.png │ │ ├── constructorsbg.gif │ │ ├── conversionbg.gif │ │ ├── defbg-blue.gif │ │ ├── defbg-green.gif │ │ ├── diagrams.css │ │ ├── diagrams.js │ │ ├── filter_box_left.png │ │ ├── filter_box_left2.gif │ │ ├── filter_box_right.png │ │ ├── filterbg.gif │ │ ├── filterboxbarbg.gif │ │ ├── filterboxbarbg.png │ │ ├── filterboxbg.gif │ │ ├── fullcommenttopbg.gif │ │ ├── index.css │ │ ├── index.js │ │ ├── jquery-ui.js │ │ ├── jquery.js │ │ ├── jquery.layout.js │ │ ├── modernizr.custom.js │ │ ├── navigation-li-a.png │ │ ├── navigation-li.png │ │ ├── object.png │ │ ├── object_big.png │ │ ├── object_diagram.png │ │ ├── object_to_class_big.png │ │ ├── object_to_trait_big.png │ │ ├── object_to_type_big.png │ │ ├── ownderbg2.gif │ │ ├── ownerbg.gif │ │ ├── ownerbg2.gif │ │ ├── package.png │ │ ├── package_big.png │ │ ├── packagesbg.gif │ │ ├── permalink.png │ │ ├── ref-index.css │ │ ├── remove.png │ │ ├── scheduler.js │ │ ├── selected-implicits.png │ │ ├── selected-right-implicits.png │ │ ├── selected-right.png │ │ ├── selected.png │ │ ├── selected2-right.png │ │ ├── selected2.png │ │ ├── signaturebg.gif │ │ ├── signaturebg2.gif │ │ ├── template.css │ │ ├── template.js │ │ ├── tools.tooltip.js │ │ ├── trait.png │ │ ├── trait_big.png │ │ ├── trait_diagram.png │ │ ├── trait_to_object_big.png │ │ ├── type.png │ │ ├── type_big.png │ │ ├── type_diagram.png │ │ ├── type_to_object_big.png │ │ ├── typebg.gif │ │ ├── unselected.png │ │ └── valuemembersbg.gif │ └── package.html ├── zeppelin-spark-basic-line-chart.png ├── zeppelin-spark-interpreter-add-artifact.png ├── zeppelin-spark-interpreter-add-jar.png └── zeppelin-spark-interpreter-edit.png ├── pom.xml ├── release ├── lift-json_2.10-2.6.3.jar ├── lift-json_2.11-2.6.3.jar └── spark-highcharts-0.6.1.jar ├── src ├── main │ ├── java │ │ └── com │ │ │ └── knockdata │ │ │ └── Dummy.java │ ├── resources │ │ ├── basicLine.json │ │ ├── example.html │ │ └── testReport.xslt │ └── scala │ │ └── com │ │ └── knockdata │ │ └── spark │ │ ├── highcharts │ │ ├── CustomOutputMode.scala │ │ ├── CustomSinkProvider.scala │ │ ├── Init.scala │ │ ├── PlotOptions.scala │ │ ├── Registry.scala │ │ ├── SeriesHolder.scala │ │ ├── StreamingChart.scala │ │ ├── ZeppelinContextHolder.scala │ │ ├── base │ │ │ ├── BaseModel.scala │ │ │ ├── BasePlotOptions.scala │ │ │ ├── JsonConversion.scala │ │ │ ├── Layout.scala │ │ │ ├── Margin.scala │ │ │ └── Spacing.scala │ │ ├── convert.scala │ │ ├── highcharts.scala │ │ ├── model │ │ │ ├── Axis.scala │ │ │ ├── Chart.scala │ │ │ ├── Code.scala │ │ │ ├── ColorAxis.scala │ │ │ ├── Credits.scala │ │ │ ├── Data.scala │ │ │ ├── Drilldown.scala │ │ │ ├── Exporting.scala │ │ │ ├── Highcharts.scala │ │ │ ├── HighchartsHolder.scala │ │ │ ├── Labels.scala │ │ │ ├── Legend.scala │ │ │ ├── Navigation.scala │ │ │ ├── Pane.scala │ │ │ ├── PublicApply.scala │ │ │ ├── Series.scala │ │ │ ├── Subtitle.scala │ │ │ ├── Title.scala │ │ │ ├── Tooltip.scala │ │ │ └── package.scala │ │ ├── package.scala │ │ └── plotoptions │ │ │ ├── Area.scala │ │ │ ├── AreaRange.scala │ │ │ ├── AreaSpline.scala │ │ │ ├── AreaSplineRange.scala │ │ │ ├── Bar.scala │ │ │ ├── BoxPlot.scala │ │ │ ├── Bubble.scala │ │ │ ├── Column.scala │ │ │ ├── ColumnRange.scala │ │ │ ├── ErrorBar.scala │ │ │ ├── Funnel.scala │ │ │ ├── Gauge.scala │ │ │ ├── HeatMap.scala │ │ │ ├── Line.scala │ │ │ ├── Pie.scala │ │ │ ├── Polygon.scala │ │ │ ├── Pyramid.scala │ │ │ ├── Scatter.scala │ │ │ ├── Series.scala │ │ │ ├── SolidGauge.scala │ │ │ ├── Spline.scala │ │ │ ├── TreeMap.scala │ │ │ └── Waterfall.scala │ │ └── utils │ │ ├── CipherUtil.scala │ │ ├── filter.scala │ │ └── functions.scala └── test │ ├── resources │ ├── SF-Salaries.csv │ ├── bank.csv │ ├── bankSample.csv │ ├── highcharts.4.2.5.names.json │ ├── invalidXMLContent.xml │ ├── log4j.xml │ └── snowdepth.csv │ └── scala │ └── com │ └── knockdata │ └── spark │ ├── highcharts │ ├── 1ColumnWithAgg.json │ ├── 2ColumnDrilldown1Level.json │ ├── 2ColumnWithAgg.json │ ├── AbstractTestCase.scala │ ├── Assert.scala │ ├── DataSet.scala │ ├── DemoHighchart.scala │ ├── DemoStructureStreaming.scala │ ├── Drilldown1Level.json │ ├── Drilldown2Level.json │ ├── SeriesDrilldown1Level.json │ ├── SeriesWithAgg.json │ ├── SparkEnv.scala │ ├── demo │ │ ├── CustomSink.scala │ │ ├── DemoAreaChart.scala │ │ ├── DemoBarChart.scala │ │ ├── DemoBubbleChart.scala │ │ ├── DemoColumnChart.scala │ │ ├── DemoComboChart.scala │ │ ├── DemoDrillDown.scala │ │ ├── DemoHeatmap.scala │ │ ├── DemoLineChart.scala │ │ ├── DemoPieChart.scala │ │ ├── DemoSFSalariesChart.scala │ │ ├── DemoStreamingAreaChart.scala │ │ ├── GenDemoMarkdown.scala │ │ ├── GenTalkHTML.scala │ │ ├── MockOutputMode.scala │ │ ├── MockSinkProvider.scala │ │ ├── MockZeppelinContextHolder.scala │ │ ├── NuclearStockpile.scala │ │ └── StreamingQueryName.scala │ ├── model │ │ ├── ModelAnalyzer.scala │ │ ├── TestAxis.scala │ │ ├── TestHighcharts.scala │ │ ├── TestInit.scala │ │ ├── TestSeries.scala │ │ ├── TestTitle.scala │ │ └── demo │ │ │ ├── TestAreaBasic.scala │ │ │ ├── TestBarBasic.scala │ │ │ ├── TestCombo.scala │ │ │ └── TestLineBasic.scala │ └── plotoptions │ │ └── TestPlotOptions.scala │ └── utils │ └── TestCipherUtil.scala └── talks ├── .bowerrc ├── .editorconfig ├── .gitignore ├── .jshintrc ├── Gruntfile.js ├── bower.json ├── config.json ├── css ├── github-markdown.css ├── impressConsole.css └── main.css ├── demoBarHistogram.html ├── demoBasicArea.html ├── demoBasicAreaPlot.html ├── demoBasicLine.html ├── demoDonut.html ├── demoDrilldown2Level.html ├── demoDrilldownBasic.html ├── demoHistogram.html ├── demoLineBasic.html ├── demoLineBasicAsc.html ├── demoLineBasicDesc.html ├── demoLineBasicMultipleSeries.html ├── demoLineBasicMultipleSeriesWithOption.html ├── demoLineBasicMultipleSeriesWithoutOption.html ├── demoLineWithDataLabels.html ├── demoLineZoomable.html ├── demoSFSalaries.html ├── demoSplineInverted.html ├── demoSplineWithPlotBands.html ├── demoStackedColumn.html ├── demoTimeDataWithIrregularIntervals.html ├── highlight ├── CHANGES.md ├── LICENSE ├── README.md ├── README.ru.md ├── highlight.pack.js └── styles │ ├── agate.css │ ├── androidstudio.css │ ├── arduino-light.css │ ├── arta.css │ ├── ascetic.css │ ├── atelier-cave-dark.css │ ├── atelier-cave-light.css │ ├── atelier-dune-dark.css │ ├── atelier-dune-light.css │ ├── atelier-estuary-dark.css │ ├── atelier-estuary-light.css │ ├── atelier-forest-dark.css │ ├── atelier-forest-light.css │ ├── atelier-heath-dark.css │ ├── atelier-heath-light.css │ ├── atelier-lakeside-dark.css │ ├── atelier-lakeside-light.css │ ├── atelier-plateau-dark.css │ ├── atelier-plateau-light.css │ ├── atelier-savanna-dark.css │ ├── atelier-savanna-light.css │ ├── atelier-seaside-dark.css │ ├── atelier-seaside-light.css │ ├── atelier-sulphurpool-dark.css │ ├── atelier-sulphurpool-light.css │ ├── atom-one-dark.css │ ├── atom-one-light.css │ ├── brown-paper.css │ ├── brown-papersq.png │ ├── codepen-embed.css │ ├── color-brewer.css │ ├── darcula.css │ ├── dark.css │ ├── darkula.css │ ├── default.css │ ├── docco.css │ ├── dracula.css │ ├── far.css │ ├── foundation.css │ ├── github-gist.css │ ├── github.css │ ├── googlecode.css │ ├── grayscale.css │ ├── gruvbox-dark.css │ ├── gruvbox-light.css │ ├── hopscotch.css │ ├── hybrid.css │ ├── idea.css │ ├── ir-black.css │ ├── kimbie.dark.css │ ├── kimbie.light.css │ ├── magula.css │ ├── mono-blue.css │ ├── monokai-sublime.css │ ├── monokai.css │ ├── obsidian.css │ ├── ocean.css │ ├── paraiso-dark.css │ ├── paraiso-light.css │ ├── pojoaque.css │ ├── pojoaque.jpg │ ├── purebasic.css │ ├── qtcreator_dark.css │ ├── qtcreator_light.css │ ├── railscasts.css │ ├── rainbow.css │ ├── school-book.css │ ├── school-book.png │ ├── solarized-dark.css │ ├── solarized-light.css │ ├── sunburst.css │ ├── tomorrow-night-blue.css │ ├── tomorrow-night-bright.css │ ├── tomorrow-night-eighties.css │ ├── tomorrow-night.css │ ├── tomorrow.css │ ├── vs.css │ ├── xcode.css │ ├── xt256.css │ └── zenburn.css ├── index.html ├── js ├── impressConsole.js └── main.js ├── package.json ├── pysparkStackedColumn.html ├── shellStackedColumn.html ├── steps ├── addjar2sparkshell.html ├── basicline.html ├── chartaxis.html ├── drilldown2level.html ├── drilldownbasic.html ├── highcharts.html ├── histogram.html ├── howaboutpyspark.html ├── insparkshell.html ├── linebasic.html ├── linebasicmultipleserieswithoutoption.html ├── linezoomable.html ├── list.json ├── packages.html ├── pyspark.html ├── splineinverted.html ├── stackedcolumn.html ├── start.html ├── thanks.html ├── usehtmlinsparkshell.html ├── xiexie.png └── zeppelinbuiltincharts.html ├── thanks.html └── title.html /.gitattributes: -------------------------------------------------------------------------------- 1 | src/test/resources/SF-Salaries.csv filter=lfs diff=lfs merge=lfs -text 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | *.log 3 | .idea 4 | *.iml 5 | .DS_Store 6 | # sbt specific 7 | .cache 8 | .history 9 | .lib/ 10 | dist/* 11 | target/ 12 | cache/* 13 | metastore_db 14 | pom.xml.versionsBackup 15 | highchart*.html 16 | 17 | lib_managed/ 18 | src_managed/ 19 | project/boot/ 20 | project/plugins/project/ 21 | 22 | # Scala-IDE specific 23 | .scala_dependencies 24 | .worksheet 25 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | install: mvn install -DskipTests -Dgpg.skip 3 | -------------------------------------------------------------------------------- /demos/SynchronizedCharts.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 13 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /demos/combo/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /demos/synchronized-charts/demo.css: -------------------------------------------------------------------------------- 1 | .chart { 2 | min-width: 320px; 3 | max-width: 800px; 4 | height: 220px; 5 | margin: 0 auto; 6 | } 7 | 8 | 9 | 10 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |