Skip to content

Commit 9e4d52f

Browse files
committed
add powerbi
1 parent d34acbe commit 9e4d52f

2 files changed

Lines changed: 39 additions & 29 deletions

File tree

README.md

Lines changed: 39 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This is a short interactive tutorial introducing the basic elements and concepts
55
Then, the basic principles of D3 and its functions are introduced by incrementally implementing an interactive bar chart.
66
The example can be implemented manually or directly by editing the [CodePen](https://codepen.io) examples.
77

8-
In the second part of this tutorial a more complex multiple coordinated view (MCV) setup is incrementally implemented. A multiple coordinated view setup consists of multiple visualizations that are interactivly linked together such
8+
In the second part of this tutorial a more complex multiple coordinated view (MCV) setup is incrementally implemented. A multiple coordinated view setup consists of multiple visualizations that are interactively linked together such
99
as selecting an element in one visualization filters the data in a second one. This is also called linking and brushing. Along with this example some guidelines
1010
regarding code structure and advanced D3 transitions are given.
1111

@@ -63,7 +63,7 @@ Part 2: Student's First Multiple Coordinated View
6363
- [Code Structure](#code-structure)
6464
- [D3 Layouts](#layouts)
6565
- [Interactivity 2](#interaction2)
66-
- [Reuseability](#reuse)
66+
- [Reusability](#reuse)
6767
- [Transitions 2](#transitions2)
6868

6969
Extras
@@ -196,7 +196,7 @@ More important than styling, however, are the rules on how we identify elements
196196

197197
## Selectors
198198

199-
Great way to spearate the style from the actual content. In addition, the selector notation is used for navigation and selections in D3.
199+
Great way to separate the style from the actual content. In addition, the selector notation is used for navigation and selections in D3.
200200

201201
Good overview of CSS Selectors: https://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048
202202

@@ -329,7 +329,7 @@ JavaScript can be used with imperative/procedural, object-oriented, and function
329329

330330
It is a dynamically typed language, which can be strange for developers who mainly work with strongly typed languages such as C/C++ and Java.
331331

332-
**Note** To follow the examples below, you can open the Developer Tools’s JavaScript console on a browser window, and type the examples to see what they do. Or
332+
**Note** To follow the examples below, you can open the JavaScript console on a browser window, and type the examples to see what they do. Or
333333
[![Open in CodePen][codepen]](https://codepen.io/thinkh/pen/qrwxdb).
334334

335335
```js
@@ -904,7 +904,7 @@ Besides this functional approach an object oriented way is an valid alternative.
904904

905905
**INTERACTIVE**
906906

907-
MCV Inital Setup: [mcv01_initial.html](examples/mcv01_initial.html) [![Open in CodePen][codepen]](https://codepen.io/sgratzl/pen/bQzNBO)
907+
MCV Initial Setup: [mcv01_initial.html](examples/mcv01_initial.html) [![Open in CodePen][codepen]](https://codepen.io/sgratzl/pen/bQzNBO)
908908

909909
---
910910

@@ -940,9 +940,9 @@ SEE: [miserables.html](examples/miserables.html) [![Open in CodePen][codepen]](h
940940

941941
### D3 Geo
942942

943-
D3 Geo is the D3 package for creating maps and other geo location based visualization. Similar to the other layouts D3 only helps to create the data structure and transformations but one has to render the map itself using SVG path elements. D3 provides numerous different geo projection methods, commonly used are `d3.geoAlbersUsa` and `d3.geoMercator`. A `d3.geoPath` uses a geo projection to transform geographical shape data in [GeoJSON](http://geojson.org/) or its derivative [TopoJSON](https://github.com/topojson/topojson) to SVG Path descriptions.
943+
D3 Geo is the D3 package for creating maps and other geo location based visualization. Similar to the other layouts D3 only helps to create the data structure and transformations but one has to render the map itself using SVG path elements. D3 provides numerous different geo projection methods, commonly used are `d3.geoAlbersUsa` and `d3.geoMercator`. A `d3.geoPath` uses a geo projection to transform geographical shape data in [GeoJSON](http://geojson.org/) or its derivative [TopoJSON](https://github.com/topojson/topojson) to SVG Path descriptions.
944944

945-
For example using `d3.geoAlbersUsa` and the [US Atlas](https://github.com/topojson/us-atlas) shape data one can create a simple Choropleth chart in which each US state is encoded using a continuous colored value.
945+
For example using `d3.geoAlbersUsa` and the [US Atlas](https://github.com/topojson/us-atlas) shape data one can create a simple Choropleth chart in which each US state is encoded using a continuous colored value.
946946

947947
![D3 Choropleth](./i/choropleth.png)
948948

@@ -974,7 +974,7 @@ Interactive Visualizations: [mcv03_interaction.html](examples/mcv03_interaction.
974974

975975
<a id="reuse"></a>
976976

977-
## Reuseability
977+
## Reusability
978978

979979
An advantage of our code structure is that we can use the factory methods to create multiple instances of the same visualization kind showing different aspect of the data. This is a simple yet effective way to improve the overall multiple coordinated setup.
980980

@@ -1054,33 +1054,35 @@ Github repository: https://github.com/sgratzl/d3boilerplate
10541054

10551055
![Vega Examples](./i/vega.png)
10561056

1057-
## Tableau
1057+
## PowerBI
10581058

1059-
https://www.tableau.com/
1059+
https://powerbi.microsoft.com/
10601060

1061-
The big player for commercial fat client data visualization.
1061+
The big player for commercial data visualization.
10621062

1063-
![Tableau Screenshot](./i/tableau.png)
1063+
![PowerBI Screenshot](./i/powerbi.png)
10641064

1065-
(c) https://www.marketwatch.ro
1065+
(c) https://docs.microsoft.com
10661066

1067-
## Processing
1067+
## Tableau
10681068

1069-
https://processing.org/ and https://processingjs.org/ for a web-version
1069+
https://www.tableau.com/
10701070

1071-
Own programming language for visualizations with OpenGL backend
1071+
Another big player for commercial data visualization.
10721072

1073-
![Processing Screenshot](./i/processing.jpg)
1073+
![Tableau Screenshot](./i/tableau.png)
10741074

1075-
## HighCharts
1075+
(c) https://www.marketwatch.ro
10761076

1077-
https://www.highcharts.com/
1077+
## Plot.ly
10781078

1079-
Commercial JavaScript Plot library
1079+
https://plot.ly
10801080

1081-
![HighCharts Screenshot](./i/highcharts.jpg)
1081+
free and commercial charting library.
10821082

1083-
(c) https://www.webdesignbooth.com
1083+
![Plot.ly Screenshot](./i/plotly.png)
1084+
1085+
(c) https://aperiodical.com/
10841086

10851087
## Chart.js
10861088

@@ -1090,15 +1092,23 @@ Open source canvas based charting library
10901092

10911093
![Chart.js Screenshot](./i/chartjs.png)
10921094

1093-
## Plot.ly
1095+
## Processing
10941096

1095-
https://plot.ly
1097+
https://processing.org/ and https://processingjs.org/ for a web-version
10961098

1097-
free and commerical charting library.
1099+
Own programming language for visualizations with OpenGL backend
10981100

1099-
![Plot.ly Screenshot](./i/plotly.png)
1101+
![Processing Screenshot](./i/processing.jpg)
11001102

1101-
(c) https://aperiodical.com/
1103+
## HighCharts
1104+
1105+
https://www.highcharts.com/
1106+
1107+
Commercial JavaScript Plot library
1108+
1109+
![HighCharts Screenshot](./i/highcharts.jpg)
1110+
1111+
(c) https://www.webdesignbooth.com
11021112

11031113
## Frameworks on top of D3:
11041114

@@ -1114,7 +1124,7 @@ free and commerical charting library.
11141124

11151125
## TypeScript and D3
11161126

1117-
[TypeScript](https://www.typescriptlang.org/) is a programming language on top of JavaScript. Foremost it allows to specify types to variables and parameters similar to other typed langugages such as Java, C#, and so on. The TypeScript compiler compiles the TypeScript code to regular JavaScript code and also performs checks on it. Every JavaScript code is valid TypeScript code.
1127+
[TypeScript](https://www.typescriptlang.org/) is a programming language on top of JavaScript. Foremost it allows to specify types to variables and parameters similar to other typed languages such as Java, C#, and so on. The TypeScript compiler compiles the TypeScript code to regular JavaScript code and also performs checks on it. Every JavaScript code is valid TypeScript code.
11181128

11191129
Examples
11201130

@@ -1181,7 +1191,7 @@ let rects: Selection<SVGRectElement, number, SVGGElement, unknown>;
11811191
rects = d3.select("g").selectAll("rect").data([1, 2, 3]);
11821192
```
11831193

1184-
One can specify the type in more detail by specifing the generic argument of the function. This is useful when the selector is more complex that just the element type. e.g., `d3.select<SVGGElement, unknown>(".chart")`. One also has to specify the generic arguments when using scales that are not just numbers but e.g., a linear scale for generating colors as `d3.scaleLinear<string, number>().domain([0, 1]).range(["white", "black"]);`.
1194+
One can specify the type in more detail by specifying the generic argument of the function. This is useful when the selector is more complex that just the element type. e.g., `d3.select<SVGGElement, unknown>(".chart")`. One also has to specify the generic arguments when using scales that are not just numbers but e.g., a linear scale for generating colors as `d3.scaleLinear<string, number>().domain([0, 1]).range(["white", "black"]);`.
11851195

11861196
---
11871197

i/powerbi.png

72.3 KB
Loading

0 commit comments

Comments
 (0)