Om mer tid och resurser kan läggas på detta eller liknande experiment skulle man kunna göra flera olika saker för att få mer kunskap om och mer insikt i olika JavaScriptbibliotek för statistiska diagram och grafer.
Till en början kan fler mätningar genomföras för ännu fler och säkrare resultat att basera analyser på. Då både själva utritningstiden och tiden för hela sidans laddning lagrats kan skillnaden i dessa undersökas vidare. Kanske kan man se om tiden för hela sidans laddning påverkas av datamängden som används för diagrammen eller kanske se om det finns andra, bättre, sätt att lagra och hämta data, istället för att använda en XML-fil.
I detta experiment lagrades mätresultat för själva utritningen av diagram, men också för tiden det tog att genomföra alla funktioner på sidan. Då denna studie riktar in sig på just utritningstider har inte mycket fokus lagts på tiden det tagit för hela sidan att laddas. Detta är något som skulle kunna undersökas vidare i framtida studier. Att exempelvis se om det finns kopplingar mellan utritningstid och laddningstid för hela sidan och att undersöka vilka funktioner som tar mest tid att genomföra kan vara intressant att arbeta vidare med.
Man kan även jämföra andra, liknande, JavaScriptbibliotek och genomföra mätningar och undersökningar av andra diagramtyper, exempelvis de som nämns i 2.2.2 Statistiska grafer och diagram. Utöver dessa kan även ytterligare experiment genomföras där grafer och diagram med mer interaktion undersöks och jämförs, exempelvis med animationer och förändringar i realtid alternativt där man kan interagera med diagrammen och välja vilken data som ska visas. Experimentet kan också genomföras med flera olika webbläsare för att se om det finns skillnader mellan dessa samt på olika enheter, såsom olika datorer, surfplattor och mobiler för att nämna några.
Experimentet kan även utökas till större datamängd, antingen med ytterligare data från Bolin Centre for Climate Reasearch (Bolin Centre for Climate Research 2018) då de fortsätter att mäta temperaturer i Stockholm och uppdatera sin hemsida med dessa, eller med något annat dataset.
I framtiden kan det vara intressant att arbeta vidare med prestanda för utritningar av grafer och diagram, kanske kan man även optimera befintliga bibliotek? Att fortsätta arbeta med att försöka få ännu bättre prestanda på renderingen kan bland annat börssidor och de som handlar med aktier dra nytta av. Att just börsen tas upp som exempel är för att även millisekunder kan göra oerhört stor skillnad där och det märks rätt tydligt när det handlar om att vinna eller förlora stora, eller små, mängder pengar.
Om fler personer kan involveras i studien kan både utvecklar- och programmerarperspektiv samt användarperspektiv undersökas. Att få med både utvecklar- och användarperspektiv kan leda till fördjupad förståelse av hur de olika JavaScriptbiblioteken fungerar och hur de används bäst. Om tillgång till testpersoner finns kan man även genomföra undersökningar där olika personers åsikter tas med i beräkningarna. Till exempel kan designpreferenser och användbarhet tas med i analys och utvärdering.
Utvecklingsmöjligheterna nämnda ovan kan antingen undersökas var för sig, exempelvis att endast ta med fler JavaScriptbibliotek i undersökningen, eller flera på samma gång. Ett exempel på det senare kan vara att göra fler mätningar med annan data som lagrats på något annat sätt samtidigt som utritningstider jämförs med tider för alla funktioner. I samma studie
41
kan även användares och programmerares synpunkter tas till vara och analyseras. Det finns flera olika vägar att gå och många av dem kan kombineras på olika sätt. Möjligheterna, om bara resurser finns, är näst intill oändliga.
Med resurser och med mycket tid att lägga på fortsatt arbete kan kanske funktionalitet från olika JavaScriptbibliotek slås samman till ett bibliotek eller så kan det till och med implementeras direkt i nästa version av HTML eller JavaScript, så att inga bibliotek längre behövs för detta.
Att hitta andra användningsmöjligheter för visualiseringen av statistiska grafer, visualisering i allmänhet och andra användningsområden för JavaScriptbibliotek är också möjliga vägar att fortsätta undersöka och forska vidare på. Kanske kan liknande tekniker användas för andra program, även till sådana funktioner som inte ligger på webben. Eventuellt kan liknande visualiseringar användas för att visa tågstatistik på stationer eller på själva tågen och för flyg eller bilar. Hur termometrar visar temperaturer eller hur värmen i en ugn kontrolleras kan eventuellt i framtiden även det visualiseras för att få en roligare och bättre bild av informationen och potentiella förändringar. Det som nämnts är eller skulle kunna vara delar av ett Smart Home-system och om mer tid läggs på att forska vidare kan möjligen JavaScriptbibliotek bli en del av denna nya utveckling utan att vara alltför komplicerat och kostsamt. I och med detta kan även skillnader mellan HD-skärmar och pixelskärmar som bara visar svart och vitt jämföras.
Om man sträcker sig ännu längre in i framtiden med eventuella kommande projekt kanske visualiseringar, likt de som tagits upp i detta arbete, kan användas i ännu större utsträckning såsom i moderna klockor, i nya modeller av glasögon som kan koppla upp sig mot webben eller möjligtvis för att visa information och statistik från datorer direkt på de berörda datordelarna. Det finns redan idag bilar som har en liten skärm i sig som visar upp information. Kanske kan även dessa i framtiden kopplas upp mot internet och göra så att mer information kan visas på skärmen, kanske kan information från och om bilen skickas till, och visas upp i, en mobil istället. Kanske kan det till och med gå så långt att självkörande bilar kan skapas där de använder sig av data både från bilen i sig och andra källor, och att denna information kan visas i en mobil som då både kan kontrollera bilen och samtidigt se statistik från resan.
42
Referenser
Aigner, W., Miksch, S., Müller, W., Schumann, H. & Tominski, C. (2008). Visual Methods for Analyzing Time-Oriented Data. IEEE Transactions on Visualization and Computer Graphics, 14(1), ss. 47-60. doi: 10.1109/TVCG.2007.70415
Ali, S.M., Gupta, N., Nayak, G.K. & Lenka R.K. (2016). Big Data Visualization: Tools and Challenges. 2016 2nd International Conference on Contemporary Computing and Informatics (ic3i), ss. 709-713. doi: 10.1109/IC3I.2016.7918044
Anttonen, M., Salminen, A., Mikkonen, T. & Taivalsaari, A. (2011). Transforming the web into a real application platform: new technologies, emerging trends and missing pieces. SAC '11 Proceedings of the 2011 ACM Symposium on Applied Computing, ss. 800-807. doi:
10.1145/1982185.1982357
Berndtsson, M., Hansson, J., Olsson, B. & Lundell, B. (2008). Thesis Projects: A Guide for Students in Computer Science and Information Systems. 2. ed., London: Springer.
Bolin Centre for Climate Research
https://bolin.su.se/data/stockholm/homogenized_daily_mean_temperatures.php [2018-02-17]
Cai, J.-Y., Nerurkar, A. & Wu, M.-Y. (1998). Making benchmarks uncheatable. Computer Performance and Dependability Symposium, 1998. IPDS '98. Proceedings, ss. 216-227.
doi: 10.1109/IPDS.1998.707724
Chart.js http://www.chartjs.org/ [2017-12-11]
Chart.js Scatter Chart http://www.chartjs.org/docs/latest/charts/scatter.html [2018-04-15]
Chartist.js http://gionkunz.github.io/chartist-js/ [2018-02-17]
Creative Commons 3.0 https://creativecommons.org/licenses/by/3.0/ [2018-02-17]
De Veaux, R.D., Velleman, P.F. & Bock, D.E. (2016). Stats: data and models. 4. ed., Harlow:
Pearson Education Limited.
EJS Chart http://www.ejschart.com/index.php [2018-05-24]
Fayyad, U., Grinstein, G. G. & Wierse, A. (red.) (2002). Information Visualization in Data Mining and Knowledge Discovery. San Francisco: Morgan Kaufmann.
GitHub Chart.js https://github.com/chartjs/Chart.js [2017-12-11]
GitHub Chartist.js https://github.com/gionkunz/chartist-js/blob/develop/LICENSE-MIT [2018-02-17]
GitHub EJS Chart https://github.com/EmpriseCorporation/EJSCharts [2018-05-24]
GitHub Examensarbete https://github.com/a15alica/examensarbete [2018-06-01]
GitHub Plotly https://github.com/plotly [2017-12-11]
43
GitHub Smoothie Charts
https://github.com/joewalnes/smoothie/blob/master/LICENSE.txt [2018-02-17]
Google Charts https://developers.google.com/chart/interactive/docs/gallery [2018-02-17]
Holtz, Y., David, L. & Ranwez, V. (2017). The genetic map comparator: a user-friendly application to display and compare genetic maps. Bioinformatics, 33(9), ss. 1387-1388.
doi: 10.1093/bioinformatics/btw816
Hostinger Tutorials HTML and HTML5 https://www.hostinger.com/tutorials/difference-between-html-and-html5 [2018-02-14]
Kerren, A., Jusufi, I. & Liu, J. (2014). Multi-Scale Trend Visualization of Long-Term Temperature Data Sets. I Proceedings of SIGRAD 2014, Visual Computing. Göteborg, Sverige, 12-13 juni 2014, ss. 91-94. URN: urn:nbn:se:lnu:diva-34226
Ladstädter, F., Steiner, A. K., Lackner, B. C., Pirscher, B., Kirchengast, G., Kehrer, J., Hauser, H., Muigg, P. & Doleisch, H. (2010). Exploration of Climate Data Using Interactive Visualization. Journal of Atmospheric and Oceanic Technology, 27(4), ss. 667-679. doi:
10.1175/2009JTECHA1374.1
Li, W., Eickhoff, C. & de Vries, A.P. (2014). Interactive Summarization of Social Media.
Proceedings of the 5th Information Interaction in Context Symposium, ss. 312-315. doi:
10.1145/2637002.2637050
McCoy, S. L., Austin, M. & Slughter, F. (2010). Visualization of the CreSIS Greenland data sets.
ACM SE '10 Proceedings of the 48th Annual Southeast Regional Conference, artikel nr. 97.
doi: 10.1145/1900008.1900135
Moberg, A., Bergström, H., Ruiz Krigsman, J. & Svanered, O. (2002). Daily Air Temperature and Pressure Series for Stockholm (1756-1998). Climatic Change, 53(1-3), ss. 171-212. doi:
10.1023/A:1014966724670
Plotly.js https://plot.ly/javascript/ [2017-12-11]
SCB Det här är statistik http://www.scb.se/hitta-statistik/sverige-i-siffror/det-har-ar-statistik/ [2018-03-30]
SCB Vad är statistik? http://www.scb.se/hitta-statistik/artiklar/2016/Vad-ar-statistik/
[2018-03-30]
SitePoint JavaScript Charting https://www.sitepoint.com/15-best-javascript-charting-libraries/ [2018-02-11]
SitePoint Top JavaScript https://www.sitepoint.com/top-javascript-frameworks-libraries-tools-use/ [2018-02-10]
Smoothie Charts http://smoothiecharts.org/tutorial.html [2018-02-17]
Spence, R. (2014). Information visualization: an introduction. 3. ed., New York: Springer.
Takama, N., Niibori, M., Okamoto, S., Kamada, M. & Yonekura, T. (2012). Web-Based Tool for Programming Interactive Animations in Terms of State-Transition Diagrams. 2012 15th
44
International Conference on Network-Based Information Systems (NBiS), ss. 885-888.
doi: 10.1109/NBiS.2012.101
W3Schools HTML5 Canvas https://www.w3schools.com/html/html5_canvas.asp [2018-02-03]
W3Schools JavaScript https://www.w3schools.com/js/default.asp [2018-02-14]
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B. & Wesslén, A. (2012).
Experimentation in Software Engineering. Berlin: Springer.
I
Appendix A - Plotly.js - linjediagram
Linjediagram 1
Linjediagram 2
Linjediagram 3
Linjediagram 4
II
Appendix B - Plotly.js - punktdiagram
Punktdiagram 1
Punktdiagram 2
Punktdiagram 3
Punktdiagram 4
III
Appendix C - Plotly.js - stapeldiagram
Stapeldiagram 1
Stapeldiagram 2
Stapeldiagram 3
Stapeldiagram 4
IV
Stapeldiagram 5
Stapeldiagram 6
Stapeldiagram 7
V
Appendix D - Google Charts - linjediagram
Linjediagram 1
Linjediagram 2
VI
Linjediagram 3
Linjediagram 4
VII
Appendix E - Google Charts - punktdiagram
Punktdiagram 1
Punktdiagram 2
VIII
Punktdiagram 3
Punktdiagram 4
IX
Appendix F - Google Charts - stapeldiagram
Stapeldiagram 1
Stapeldiagram 2
X
Stapeldiagram 3
Stapeldiagram 4
XI
Stapeldiagram 5
Stapeldiagram 6
XII
Stapeldiagram 7
XIII
Appendix G - Chart.js – linjediagram
Linjediagram 1
Linjediagram 2
XIV
Linjediagram 3
Linjediagram 4
XV
Appendix H - Chart.js - punktdiagram
Ej punktdiagram – felaktigt
Punktdiagram 1
XVI
Punktdiagram 2
Punktdiagram 3
XVII
Punktdiagram 4
XVIII
Appendix I - Chart.js - stapeldiagram
Stapeldiagram 1
Stapeldiagram 2
XIX
Stapeldiagram 3
Stapeldiagram 4
XX
Stapeldiagram 5
Stapeldiagram 6
XXI
Stapeldiagram 7
XXII
Appendix J - Mätningsresultat - linjediagram
Här presenteras resultaten för mätningarna som genomförs på linjediagrammen. Notera att skalan (värdena på y-axeln i diagrammen) varierar mellan de olika diagrammen.
0
Linje 1 - Medelvärde med standardavvikelse
0
Linje 1 - Medelvärde med konfidensintervall
XXIII
0 50 100 150 200 250
Chart.js Google Charts Plotly.js
Tid (ms)
Linje 2 - Medelvärde med standardavvikelse
0 20 40 60 80 100 120 140 160 180 200
Chart.js Google Charts Plotly.js
Tid (ms)
Linje 2 - Medelvärde med konfidensintervall
XXIV
0 50 100 150 200 250 300
Chart.js Google Charts Plotly.js
Tid (ms)
Linje 3 - Medelvärde med standardavvikelse
0 50 100 150 200 250
Chart.js Google Charts Plotly.js
Tid (ms)
Linje 3 - Medelvärde med konfidensintervall
XXV
Linje 4 - Medelvärde med standardavvikelse
0
Linje 4 - Medelvärde med konfidensintervall
XXVI
Appendix K - Mätningsresultat – punktdiagram
Här presenteras resultaten för mätningarna som genomförs på punktdiagrammen. Notera att skalan (värdena på y-axeln i diagrammen) varierar mellan de olika diagrammen.
0
Punkt 1 - Medelvärde med standardavvikelse
0
Punkt 1 - Medelvärde med konfidensintervall
XXVII
0 50 100 150 200 250 300
Chart.js Google Charts Plotly.js
Tid (ms)
Punkt 2 - Medelvärde med standardavvikelse
0 50 100 150 200 250
Chart.js Google Charts Plotly.js
Tid (ms)
Punkt 2 - Medelvärde med konfidensintervall
XXVIII
Punkt 3 - Medelvärde med standardavvikelse
0
Punkt 3 - Medelvärde med konfidensintervall
XXIX
Punkt 4 - Medelvärde med standardavvikelse
0
Punkt 4 - Medelvärde med konfidensintervall
XXX
Appendix L - Mätningsresultat – stapeldiagram
Här presenteras resultaten för mätningarna som genomförs på stapeldiagrammen. Notera att skalan (värdena på y-axeln i diagrammen) varierar mellan de olika diagrammen.
0
Stapel 1 - Medelvärde med standardavvikelse
0
Stapel 1 - Medelvärde med konfidensintervall
XXXI
0 20 40 60 80 100 120 140 160
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 2 - Medelvärde med standardavvikelse
0 20 40 60 80 100 120 140
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 2 - Medelvärde med konfidensintervall
XXXII
0 10 20 30 40 50 60
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 3 - Medelvärde med standardavvikelse
0 5 10 15 20 25 30 35 40 45
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 3 - Medelvärde med konfidensintervall
XXXIII
0 50 100 150 200 250
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 4 - Medelvärde med standardavvikelse
0 20 40 60 80 100 120 140
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 4 - Medelvärde med konfidensintervall
XXXIV
0 20 40 60 80 100 120 140 160
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 5 - Medelvärde med standardavvikelse
0 20 40 60 80 100 120 140
Chart.js Google Charts Plotly.js
Tid (ms)
Stapel 5 - Medelvärde med konfidensintervall
XXXV
Stapel 6 - Medelvärde med standardavvikelse
0
Stapel 6 - Medelvärde med konfidensintervall
XXXVI
Stapel 7 - Medelvärde med standardavvikelse
0
Stapel 7 - Medelvärde med konfidensintervall
XXXVII
Appendix M - Post-hoc t-test - Linjediagram
Linje 1
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Linje 2
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js FALSKT SANT -
Linje 3
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Linje 4
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
XXXVIII
Appendix N - Post-hoc t-test – Punktdiagram
Punkt 1
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Punkt 2
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Punkt 3
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Punkt 4
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
XXXIX
Appendix O - Post-hoc t-test – Stapeldiagram
Stapel 1
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Stapel 2
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Stapel 3
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Stapel 4
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Stapel 5
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Stapel 6
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
Stapel 7
Chart.js Google Charts Plotly.jsChart.js - - -
Google Charts SANT - -
Plotly.js SANT SANT -
XL
Appendix P - Post-hoc t-test – Sammanställningar
Chart = Chart.js L = Linjediagram
Google = Google Charts P = Punktdiagram
Plotly = Plotly.js S = Stapeldiagram
Chart L1 Google L1 Plotly L1 Chart L2 Google L2 Plotly L2 Chart L3 Google L3 Plotly L3 Chart L4 Google L4 Plotly L4
Chart L1 - - - - - - - - - - -
-Chart L4 SANT SANT SANT SANT SANT SANT SANT SANT SANT - -
-Google L4 SANT SANT SANT SANT SANT SANT SANT SANT SANT SANT -
-Plotly L4 SANT SANT SANT SANT SANT SANT SANT SANT SANT SANT SANT
-Chart P1 Google P1 Plotly P1 -Chart P2 Google P2 Plotly P2 -Chart P3 Google P3 Plotly P3 -Chart P4 Google P4 Plotly P4
Chart P1 - - - - - - - - - - -
-Chart P4 SANT SANT SANT SANT SANT SANT SANT SANT SANT - -
-Google P4 SANT SANT SANT SANT SANT SANT SANT SANT SANT SANT -
-Plotly P4 SANT SANT SANT SANT SANT SANT SANT SANT SANT SANT SANT
-XLI
Chart S1Google S1Plotly S1Chart S2Google S2Plotly S2Chart S3Google S3Plotly S3Chart S4Google S4Plotly S4Chart S5Google S5Plotly S5Chart S6Google S6Plotly S6Chart S7Google S7Plotly S7 Chart S1--------------------- Google S1SANT-------------------- Plotly S1SANTSANT------------------- Chart S2SANTSANTSANT------------------ Google S2SANTSANTSANTSANT----------------- Plotly S2SANTSANTSANTSANTSANT---------------- Chart S3SANTSANTSANTSANTSANTSANT--------------- Google S3SANTSANTSANTSANTSANTSANTSANT-------------- Plotly S3SANTSANTSANTSANTSANTSANTSANTSANT------------- Chart S4SANTSANTSANTSANTSANTSANTSANTSANTSANT------------ Google S4SANTSANTSANTSANTSANTSANTSANTSANTSANTSANT----------- Plotly S4SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT---------- Chart S5SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT--------- Google S5SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT-------- Plotly S5SANTSANTFALSKTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT------- Chart S6SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT------ Google S6SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT----- Plotly S6SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT---- Chart S7SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT--- Google S7SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT-- Plotly S7SANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANTSANT-