plots erweitert
This commit is contained in:
parent
421f382d07
commit
fb58c51aa2
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
@ -7,8 +7,8 @@
|
|||||||
"**/CVS": true,
|
"**/CVS": true,
|
||||||
"**/.DS_Store": true,
|
"**/.DS_Store": true,
|
||||||
"**/Thumbs.db": true,
|
"**/Thumbs.db": true,
|
||||||
"**/*.ipynb": false,
|
"**/*.ipynb": true,
|
||||||
"**/*.md": false
|
"**/*.md": true
|
||||||
},
|
},
|
||||||
"explorerExclude.backup": {},
|
"explorerExclude.backup": {},
|
||||||
"ltex.enabled": false,
|
"ltex.enabled": false,
|
||||||
|
@ -54,8 +54,8 @@ book:
|
|||||||
- chapters/7_ArraysP2.qmd
|
- chapters/7_ArraysP2.qmd
|
||||||
- chapters/11_LinAlg.qmd
|
- chapters/11_LinAlg.qmd
|
||||||
- chapters/10_Strings.qmd
|
- chapters/10_Strings.qmd
|
||||||
|
- chapters/13_IO.qmd
|
||||||
- chapters/14_Plot.qmd
|
- chapters/14_Plot.qmd
|
||||||
# - chapters/13_IO.qmd
|
|
||||||
# - chapters/makie.qmd
|
# - chapters/makie.qmd
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ Der _American Standard Code for Information Interchange_ wurde 1963 in den USA a
|
|||||||
|ISO 8859-6 (Latin/Arabic) | |
|
|ISO 8859-6 (Latin/Arabic) | |
|
||||||
|ISO 8859-7 (Latin/Greek) | |
|
|ISO 8859-7 (Latin/Greek) | |
|
||||||
|...| |
|
|...| |
|
||||||
|ISO 8859-15 (Latin-9)| | 1999: Revision von Latin-1: jetzt mit Euro-Zeichen!
|
|ISO 8859-15 (Latin-9)| | 1999: Revision von Latin-1: jetzt u.a. mit Euro-Zeichen
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ Der _American Standard Code for Information Interchange_ wurde 1963 in den USA a
|
|||||||
Das Ziel des Unicode-Consortiums ist eine einheitliche Codierung für alle Schriften der Welt.
|
Das Ziel des Unicode-Consortiums ist eine einheitliche Codierung für alle Schriften der Welt.
|
||||||
|
|
||||||
- Unicode Version 1 erschien 1991
|
- Unicode Version 1 erschien 1991
|
||||||
- Unicode Version 15 erschien 2021 mit 149 186 Zeichen (das sind 4489 mehr als Unicode 14), darunter:
|
- Unicode Version 15.1 erschien 2023 mit 149 813 Zeichen, darunter:
|
||||||
- 161 Schriften
|
- 161 Schriften
|
||||||
- mathematische und technische Symbole
|
- mathematische und technische Symbole
|
||||||
- Emojis und andere Symbole, Steuer- und Formatierungszeichen
|
- Emojis und andere Symbole, Steuer- und Formatierungszeichen
|
||||||
@ -73,7 +73,7 @@ Das Ziel des Unicode-Consortiums ist eine einheitliche Codierung für alle Schri
|
|||||||
- Jedem Zeichen wird ein `codepoint` zugeordnet. Das ist einfach eine fortlaufende Nummer.
|
- Jedem Zeichen wird ein `codepoint` zugeordnet. Das ist einfach eine fortlaufende Nummer.
|
||||||
- Diese Nummer wird hexadezimal notiert
|
- Diese Nummer wird hexadezimal notiert
|
||||||
- entweder 4-stellig als `U+XXXX` (0-te Ebene)
|
- entweder 4-stellig als `U+XXXX` (0-te Ebene)
|
||||||
- oder 5...6-stellig als `U+XXXXXX` (weitere Ebenen)
|
- oder 6-stellig als `U+XXXXXX` (weitere Ebenen)
|
||||||
- Jede Ebene geht von `U+XY0000` bis `U+XYFFFF`, kann also $2^{16}=65\;534$ Zeichen enthalten.
|
- Jede Ebene geht von `U+XY0000` bis `U+XYFFFF`, kann also $2^{16}=65\;534$ Zeichen enthalten.
|
||||||
- Vorgesehen sind bisher 17 Ebenen `XY=00` bis `XY=10`, also der Wertebereich von `U+0000` bis `U+10FFFF`.
|
- Vorgesehen sind bisher 17 Ebenen `XY=00` bis `XY=10`, also der Wertebereich von `U+0000` bis `U+10FFFF`.
|
||||||
- Damit sind maximal 21 Bits pro Zeichen nötig.
|
- Damit sind maximal 21 Bits pro Zeichen nötig.
|
||||||
@ -83,7 +83,8 @@ Das Ziel des Unicode-Consortiums ist eine einheitliche Codierung für alle Schri
|
|||||||
- Ebene 1 = SMP _Supplementary Multilingual Plane_ `U+010000 - U+01FFFF`,
|
- Ebene 1 = SMP _Supplementary Multilingual Plane_ `U+010000 - U+01FFFF`,
|
||||||
- Ebene 2 = SIP _Supplementary Ideographic Plane_ `U+020000 - U+02FFFF`,
|
- Ebene 2 = SIP _Supplementary Ideographic Plane_ `U+020000 - U+02FFFF`,
|
||||||
- Ebene 3 = TIP _Tertiary Ideographic Plane_ `U+030000 - U+03FFFF` und
|
- Ebene 3 = TIP _Tertiary Ideographic Plane_ `U+030000 - U+03FFFF` und
|
||||||
- Ebene 14 = SSP _Supplementary Special-purpose Plane_ `U+0E0000 - U+0EFFFF` vergeben.
|
- Ebene 14 = SSP _Supplementary Special-purpose Plane_ `U+0E0000 - U+0EFFFF`
|
||||||
|
vergeben.
|
||||||
- `U+0000` bis `U+007F` ist identisch mit ASCII
|
- `U+0000` bis `U+007F` ist identisch mit ASCII
|
||||||
- `U+0000` bis `U+00FF` ist identisch mit ISO 8859-1 (Latin-1)
|
- `U+0000` bis `U+00FF` ist identisch mit ISO 8859-1 (Latin-1)
|
||||||
|
|
||||||
@ -117,6 +118,8 @@ U+21B4 RIGHTWARDS ARROW WITH CORNER DOWNWARDS
|
|||||||
|
|
||||||
Wie sieht 'RIGHTWARDS ARROW WITH CORNER DOWNWARDS' aus?
|
Wie sieht 'RIGHTWARDS ARROW WITH CORNER DOWNWARDS' aus?
|
||||||
|
|
||||||
|
Julia verwendet `\U...` zur Eingabe von Unicode Codepoints.
|
||||||
|
|
||||||
```{julia}
|
```{julia}
|
||||||
'\U21b4'
|
'\U21b4'
|
||||||
```
|
```
|
||||||
@ -256,7 +259,7 @@ Da die Codepoints unterschiedlich lang sind, kann man sie nicht einfach hinterei
|
|||||||
|
|
||||||
- Damit ist jeder ASCII-Text automatisch auch ein korrekt codierter UTF-8-Text.
|
- Damit ist jeder ASCII-Text automatisch auch ein korrekt codierter UTF-8-Text.
|
||||||
|
|
||||||
- Sollten die bisher für Unicode festgelegten 17 Ebenen = 21 Bit = 1.1 Mill. mögliche Zeichen mal erweitert werden, dann wird UTF-8 auf 5- und 6-Byte-Codes erweitert.
|
- Sollten die bisher für Unicode festgelegten 17 Ebenen (= 21 Bit = 1.1 Mill. mögliche Zeichen) mal erweitert werden, dann wird UTF-8 auf 5- und 6-Byte-Codes erweitert.
|
||||||
|
|
||||||
|
|
||||||
## Zeichen und Zeichenketten in Julia
|
## Zeichen und Zeichenketten in Julia
|
||||||
@ -272,6 +275,17 @@ Der Datentyp `Char` kodiert ein einzelnes Unicode-Zeichen.
|
|||||||
- der Integer-Wert ist gleich dem Unicode-codepoint.
|
- der Integer-Wert ist gleich dem Unicode-codepoint.
|
||||||
|
|
||||||
|
|
||||||
|
`Char`s können von/zu `UInt`s umgewandelt werden.
|
||||||
|
|
||||||
|
```{julia}
|
||||||
|
UInt('a')
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```{julia}
|
||||||
|
b = Char(0x2656)
|
||||||
|
```
|
||||||
|
|
||||||
### Zeichenketten: `String`
|
### Zeichenketten: `String`
|
||||||
|
|
||||||
- Für Strings verwendet Julia doppelte Anführungszeichen: `"a"`.
|
- Für Strings verwendet Julia doppelte Anführungszeichen: `"a"`.
|
||||||
@ -283,16 +297,7 @@ Der Datentyp `Char` kodiert ein einzelnes Unicode-Zeichen.
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
- `Char`s können von/zu `UInt`s umgewandelt werden.
|
|
||||||
|
|
||||||
```{julia}
|
|
||||||
UInt('a')
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
```{julia}
|
|
||||||
b = Char(0x2656)
|
|
||||||
```
|
|
||||||
|
|
||||||
__Bei einem Nicht-ASCII-String unterscheiden sich Anzahl der Bytes und Anzahl der Zeichen:__
|
__Bei einem Nicht-ASCII-String unterscheiden sich Anzahl der Bytes und Anzahl der Zeichen:__
|
||||||
|
|
||||||
|
@ -9,7 +9,9 @@ engine: julia
|
|||||||
using InteractiveUtils
|
using InteractiveUtils
|
||||||
```
|
```
|
||||||
|
|
||||||
# Ein- und Ausgabe I/O
|
# Ein- und Ausgabe
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
zahlreiche Varianten und Funktionen, das Folgende ist eine kleine Auswahl
|
zahlreiche Varianten und Funktionen, das Folgende ist eine kleine Auswahl
|
||||||
|
|
||||||
@ -37,7 +39,6 @@ zahlreiche Varianten und Funktionen, das Folgende ist eine kleine Auswahl
|
|||||||
|
|
||||||
|
|
||||||
```{julia}
|
```{julia}
|
||||||
# aus dem ersten Beispielprogramm
|
|
||||||
|
|
||||||
function input(prompt = "Eingabe:")
|
function input(prompt = "Eingabe:")
|
||||||
println(prompt)
|
println(prompt)
|
||||||
@ -47,12 +48,17 @@ end
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
```{julia}
|
```{julia}
|
||||||
|
#| eval: false
|
||||||
a = input("Bitte 2 Zahlen eingeben!")
|
a = input("Bitte 2 Zahlen eingeben!")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```{julia}
|
||||||
|
#| echo: false
|
||||||
|
a = "34 56"
|
||||||
|
```
|
||||||
|
|
||||||
```{julia}
|
```{julia}
|
||||||
av = split(a)
|
av = split(a)
|
||||||
```
|
```
|
||||||
|
@ -28,11 +28,13 @@ Es gibt zahlreiche Grafikpakete für Julia. Zwei oft genutzte sind [Makie.jl](ht
|
|||||||
| [Luxor.jl](http://juliagraphics.github.io/Luxor.jl/stable/) |[Tutorial](https://juliagraphics.github.io/Luxor.jl/stable/tutorial/helloworld/)|[Examples](https://juliagraphics.github.io/Luxor.jl/stable/example/moreexamples/)| Allgemeine Vektorgrafik/Illustrationen |
|
| [Luxor.jl](http://juliagraphics.github.io/Luxor.jl/stable/) |[Tutorial](https://juliagraphics.github.io/Luxor.jl/stable/tutorial/helloworld/)|[Examples](https://juliagraphics.github.io/Luxor.jl/stable/example/moreexamples/)| Allgemeine Vektorgrafik/Illustrationen |
|
||||||
| [Javis.jl](https://juliaanimators.github.io/Javis.jl/stable/) |[Tutorials](https://juliaanimators.github.io/Javis.jl/stable/tutorials/)| [Examples](https://juliaanimators.github.io/Javis.jl/stable/examples/)| *Animierte* Vektorgrafik
|
| [Javis.jl](https://juliaanimators.github.io/Javis.jl/stable/) |[Tutorials](https://juliaanimators.github.io/Javis.jl/stable/tutorials/)| [Examples](https://juliaanimators.github.io/Javis.jl/stable/examples/)| *Animierte* Vektorgrafik
|
||||||
| [TidierPlots.jl](https://github.com/TidierOrg/TidierPlots.jl)| [Reference](https://tidierorg.github.io/TidierPlots.jl/latest/) || "is a 100% Julia implementation of the R package ggplot2 powered by Makie.jl"|
|
| [TidierPlots.jl](https://github.com/TidierOrg/TidierPlots.jl)| [Reference](https://tidierorg.github.io/TidierPlots.jl/latest/) || "is a 100% Julia implementation of the R package ggplot2 powered by Makie.jl"|
|
||||||
| [PyPlot.jl](https://github.com/JuliaPy/PyPlot.jl) | | [Examples](https://gist.github.com/gizmaa/7214002)| Interface zu Matplotlib (Python), 1:1-Übertragung der Python-API, deswegen s. [Matplotlib-Dokumentation](https://matplotlib.org/stable/) |
|
|[PythonPlot.jl](https://github.com/JuliaPy/PythonPlot.jl)| |[Examples (in Python)](https://matplotlib.org/stable/gallery/index.html)| Interface zu Matplotlib (Python), 1:1-Übertragung der Python-API, deswegen s. [Matplotlib-Dokumentation](https://matplotlib.org/stable/api/pyplot_summary.html)
|
||||||
|
|
||||||
: {.striped .hover}
|
: {.striped .hover}
|
||||||
|
|
||||||
|
<!--
|
||||||
|
| [PyPlot.jl](https://github.com/JuliaPy/PyPlot.jl) | | [Examples](https://gist.github.com/gizmaa/7214002)| Interface zu Matplotlib (Python), 1:1-Übertragung der Python-API, deswegen s. [Matplotlib-Dokumentation](https://matplotlib.org/stable/) |
|
||||||
|
-->
|
||||||
|
|
||||||
## Plots.jl
|
## Plots.jl
|
||||||
|
|
||||||
@ -95,6 +97,32 @@ savefig(plot1, "plot.png")
|
|||||||
Plot-Objekte können auch als Teilplot in andere Plots eingefügt werden, siehe Abschnitt @sec-subplot.
|
Plot-Objekte können auch als Teilplot in andere Plots eingefügt werden, siehe Abschnitt @sec-subplot.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Funktionsplots
|
||||||
|
|
||||||
|
Man kann `plot()` auch eine Funktion und einen Vektor mit $x$-Werten übergeben:
|
||||||
|
|
||||||
|
```{julia}
|
||||||
|
# https://mzrg.com/math/graphs.shtml
|
||||||
|
|
||||||
|
f(x) = abs(sin(x^x)/2^((x^x-π/2)/π))
|
||||||
|
|
||||||
|
plot(f, 0:0.01:3)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Die parametrische Form $x = x(t),\ y = y(t)$ kann durch die Übergabe von zwei Funktionen und einen Vektor von $t$-Werten an `plot()` gezeichnet werden.
|
||||||
|
|
||||||
|
```{julia}
|
||||||
|
# https://en.wikipedia.org/wiki/Butterfly_curve_(transcendental)
|
||||||
|
|
||||||
|
xt(t) = sin(t) * (exp(cos(t))-2cos(4t)-sin(t/12)^5)
|
||||||
|
yt(t) = cos(t) * (exp(cos(t))-2cos(4t)-sin(t/12)^5)
|
||||||
|
|
||||||
|
plot(xt, yt, 0:0.01:12π)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Plot-Themen
|
### Plot-Themen
|
||||||
|
|
||||||
> "PlotThemes is a package to spice up the plots made with Plots.jl."\
|
> "PlotThemes is a package to spice up the plots made with Plots.jl."\
|
||||||
@ -414,3 +442,36 @@ bar(cars.Model, cars.MPG,
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Was noch fehlt: Animation
|
||||||
|
|
||||||
|
Hier sei auf die [Dokumentation](https://docs.juliaplots.org/latest/animations/) verwiesen und nur ein Beispiel
|
||||||
|
(von <https://www.juliafordatascience.com/animations-with-plots-jl/>) angegeben:
|
||||||
|
|
||||||
|
```{julia}
|
||||||
|
#| error: false
|
||||||
|
#| warning: false
|
||||||
|
using Plots, Random
|
||||||
|
theme(:default)
|
||||||
|
|
||||||
|
anim = @animate for i in 1:50
|
||||||
|
Random.seed!(123)
|
||||||
|
scatter(cumsum(randn(i)), ms=i, lab="", alpha = 1 - i/50,
|
||||||
|
xlim=(0,50), ylim=(-5, 7))
|
||||||
|
end
|
||||||
|
|
||||||
|
gif(anim, fps=50)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
:::: {.content-visible when-format="pdf"}
|
||||||
|
```{julia}
|
||||||
|
#| echo: false
|
||||||
|
Random.seed!(123)
|
||||||
|
i = 33
|
||||||
|
scatter(cumsum(randn(i)), ms=i, lab="", alpha = 1 - i/50,
|
||||||
|
xlim=(0,50), ylim=(-5, 7))
|
||||||
|
|
||||||
|
```
|
||||||
|
::::
|
||||||
|
Loading…
Reference in New Issue
Block a user