File:Einwohnerentwicklung von Bielefeld - ab 1871.svg

原始文件 (SVG文件,尺寸为800 × 400像素,文件大小:64 KB)


摘要

描述
Deutsch: Einwohnerentwicklung von Bielefeld
来源 自己的作品
作者 Summer ... hier! (留言) 23:30, 19 February 2018 (UTC)

许可协议

我,本作品著作权人,特此采用以下许可协议发表本作品:
Creative Commons CC-Zero 本作品采用知识共享CC0 1.0 通用公有领域贡献许可协议授权。
采用本宣告发表本作品的人,已在法律允许的范围内,通过在全世界放弃其对本作品拥有的著作权法规定的所有权利(包括所有相关权利),将本作品贡献至公有领域。您可以复制、修改、传播和表演本作品,将其用于商业目的,无需要求授权。

Gnuplot script to generate this plot

 
矢量图由v使用Gnuplot创作.
#!/usr/bin/gnuplot
# gnuplot 


### Variablen - die wichtigsten Paramter dieser Grafik:
# (in der Regel wird es reichen für eine neue Grafik diese Werte zu ändern)
my_data               = 'Einwohnerentwicklung_von_Bielefeld.dat'
my_xrange_min         = '01.01.1871'
my_xrange_max         = '31.12.2018'
my_xtics_years        = '25'
my_mxtics             = '5'
my_yrange_min         = '0'    # bei '-1' wird der erste 
                               # Achenstrich unter Null berechnet
my_yrange_max         = '340000'
my_ytics              = '100000'
my_ymtics             = '5'
ist_gemeinde          = '1'    # 1 für ja, 0 für nein
                               # Falls ja, werden Marker für Grossstadt 
                               # und Mio.Stadt gesetzt
WW1                   = '0.90' # horiz. Pos. des WW1 Schriftzugs
WW2                   = '0.90' # horiz. Pos. des WW2 Schriftzugs
DDR                   = '0.00' # horiz. Pos. des Deut.Einheit-Schriftzugs 
                               # (0 entspr. keiner Ausgabe)

### Allgemeines zu den Eingabedaten
set timefmt "%d.%m.%Y"          # Zeitangaben in TT.MM.YYYY
set datafile separator ";"      # Spaltenseparator 
set datafile commentschars "#"  # Kommentarzeichen 
  stats my_data  u (strptime("%d.%m.%Y",strcol(1))) nooutput 
  my_diff = (STATS_max - STATS_min) / (60*60*24*365.25)
  print '     -----Stats-(Timestamp)----------------------'
  print '     Erster Wert der Datendatei:  ', strftime("%d.%m.%Y", STATS_min)
  print '     Letzter Wert der Datendatei: ', strftime("%d.%m.%Y", STATS_max)
  print '     Diff in Jahren:              ', sprintf("%.2f", my_diff)
  print '     --------------------------------------------'
  # Anmerk.: die ausgegebenen Timestamps können in einer Shell bequem mit 
  # 'date -d @[Wert]' in humanleseriches Format gewandelt werden

### Allgemeines zur Ausgabe
set key vertical maxrows 6 # Max Anzahl Zeilen
set key at graph 0.05,0.95 # Ĺegende weit links-oben (mit Angaben bez. auf Graph)
set key left top           # Punkt der Legendenbox an dem sie ausgerichtet wird
set key nobox              # kein Rahmen (zu Testzwecken box setzen!)
set key noopaque           # Transparenz 
set key width -6           # Breite schmaler
set key samplen 2          # Breite der Linenbeispiele 
unset key                  # direkt vorher gesetzte Werte aufgehoben; ggf.
                           # auskommentieren, dann wird die Legende gesetzt! 
set style data lines       # wird bei 'plot' überschrieben 
set style fill transparent solid 0.4 # wird ebenfalls bei 'plot' überschrieben
set border 3               # Rahmen unten (Bit 1) und links (+ Bit 2) 
set grid                   # Gitterlinien verwenden
# Gitterlinien per Hand setzen falls gewünscht 
set style line 1 linetype rgb '#4F4F4F' linewidth 0.5 dashtype 2 # Def. Major-grid
set style line 2 linetype rgb '#9F9F9F' linewidth 0.5 dashtype 3 # def. Minor-grid
set grid  xtics mxtics     # eventuell noxtics und nomxtics
set grid  ytics mytics     # eventuell noytics und nomytics
set grid  back             # Gitter im Hintergrund
set grid  linestyle 1, linestyle 2 # Setzen des linestyle für Major u. Minor 
#show grid                  # Kontrollausgabe auf der Konsole


### Farben - nummerische Equavalente zu Namen nach: 
# https://www2.uni-hamburg.de/Wiss/FB/15/Sustainability/schneider/gnuplot/colors.htm
# Die beiden Ziffen am Ende der Variablen geben  opacity/transparenz an
#
my_darkred_00       = '#008B0000';     my_darkred_20       = '#208B0000';
my_darkred_40       = '#408B0000';     my_darkred_60       = '#608B0000';
my_darkred_80       = '#808B0000';     my_darkred_a0       = '#a08B0000';
my_darkred_c0       = '#c08B0000';     my_darkred_e0       = '#e08B0000';
#
my_darkgreen_00     = '#00006400';     my_darkgreen_20     = '#20006400';
my_darkgreen_40     = '#40006400';     my_darkgreen_60     = '#60006400';
my_darkgreen_80     = '#80006400';     my_darkgreen_a0     = '#a0006400';
my_darkgreen_c0     = '#c0006400';     my_darkgreen_e0     = '#e0006400';
#
my_darkblue_00      = '#0000008B';     my_darkblue_20      = '#2000008B';
my_darkblue_40      = '#4000008B';     my_darkblue_60      = '#6000008B';
my_darkblue_80      = '#8000008B';     my_darkblue_a0      = '#a000008B';
my_darkblue_c0      = '#c000008B';     my_darkblue_e0      = '#e000008B';
#
my_darkmagenta_00   = '#008B008B';     my_darkmagenta_20   = '#208B008B';
my_darkmagenta_40   = '#408B008B';     my_darkmagenta_60   = '#608B008B';
my_darkmagenta_80   = '#808B008B';     my_darkmagenta_a0   = '#a08B008B';
my_darkmagenta_c0   = '#c08B008B';     my_darkmagenta_e0   = '#e08B008B';
# 
my_darkorange_00    = '#00FF8C00';     my_darkorange_20    = '#20FF8C00';
my_darkorange_40    = '#40FF8C00';     my_darkorange_60    = '#60FF8C00';
my_darkorange_80    = '#80FF8C00';     my_darkorange_a0    = '#a0FF8C00';
my_darkorange_c0    = '#c0FF8C00';     my_darkorange_e0    = '#e0FF8C00';
#
my_darkturquoise_00 = '#0000CED1';     my_darkturquoise_20 = '#2000CED1';
my_darkturquoise_40 = '#4000CED1';     my_darkturquoise_60 = '#6000CED1';
my_darkturquoise_80 = '#8000CED1';     my_darkturquoise_a0 = '#a000CED1';
my_darkturquoise_c0 = '#c000CED1';     my_darkturquoise_e0 = '#e000CED1'; 
#
my_black_00         = '#00000000';     my_black_20         = '#20000000';
my_black_40         = '#40000000';     my_black_60         = '#60000000';
my_black_80         = '#80000000';     my_black_a0         = '#a0000000';
my_black_c0         = '#c0000000';     my_black_e0         = '#e0000000';


### Bereiche/Format/etc X-Achse 
set xdata time             # X-Achse als Zeitachse
set xlabel 'Jahr'          # Beschriftung X-Achse
set xlabel offset 0, 0.75  # Schrift etwas höher
set xrange [ my_xrange_min : my_xrange_max]
                           # Wertebreich der X-Achse
set xtics '01.01.1000', (60*60*24*365.25) * my_xtics_years
                           # xtics in Sekunden 
                           # der Beginn (Wert vor dem Komma) der X-Einteilung 
                           # kann außerhalb xrange liegen
set xtics offset  0, 0.5   # Beschriftung näher an die X-Achse
set mxtics my_mxtics       # Skalenstriche 
set xtics nomirror         # Nur unten Skalieren
set format x '%3Y'         # Beschr.format JJJJ (bei 3 Stellen o. führend 0)
set xtics  out             # Skal. aussen damit sie nicht von Grafik 
                           # überschr. wird


# Bereiche/Format/etc Y-Achse
set ylabel 'Einwohnerzahl' offset 2 # Abstand Achse/Label 
# Untere Begrenzung des Bereichs der Y-Achse
# Falls my_yrange_min wird der erste Achsenstrich unterhalb der
# Nulllinie berechnen falls my_yrange gleich -1
if (my_yrange_min eq '-1' ) {
  my_yrange_min = - my_ytics / my_ymtics
  # für den Fall Nullline etwas fetter
  set arrow from my_xrange_min, '0' to     my_xrange_max, '0' nohead lc rgb '#C0000000' back
}
set yrange [ my_yrange_min : ]
# Obere  Begrenzung des Bereichs der Y-Achse
# wir Testen ob der Wert der Var.  my_yrange_max ein '*' ist und reagieren 
# entsprechend weil der '*' sich nicht direkt via Var. setzen lässt. 
if ( ( my_yrange_max eq '*' )) set yrange [ : *             ]
if (!( my_yrange_max eq '*' )) set yrange [ : my_yrange_max ]
set ytics my_ytics         # Anzahl der kleinen Teilstriche
set ytics offset 0.5       # Schrift etwas nach rechts
set ytics nomirror         # oben keine Teilstriche
set decimalsign locale "de_DE.utf8" # Stelle Input und Output auf "," um 
                           # set decimalsign ',' würde nur Output umstellen, 
set format y  "%'.0f"      # Ausgabeformat
set mytics my_ymtics       # Unterskalierung 
set ytics  out             # Skal. aussen da sie sonst von Grafik 
                           # überschr. wird


### Markierungsbalken für die beiden Weltkriege etc.
# Die set-Befehle ggf. auskommentieren
# Attribute für Markierungsbalken
set style rect fillcolor lt -1 fillstyle solid 0.1 noborder
#
# == Dreißigjähriger Krieg
  set obj rect from '23.05.1618', graph 0 to '24.10.1648' , graph 1 back
  set label "Dreißigjähriger Krieg" at '30.06.1633', graph 0.8 rotate by +60 center front
# == Siebenjähriger Krieg
# set obj rect from '29.08.1756', graph 0 to '21.09.1762' , graph 1 back
# set label "Siebenjähriger Krieg"  at '30.06.1759', graph 0.8 rotate by +60 center front
# == Hamburger Franzosenzeit
# set obj rect from '30.06.1806', graph 0 to '30.06.1814' , graph 1 back
# set label "H. Franzosenzeit"      at '01.01.1810', graph 0.3 rotate by +60 center front
# == Befreiungskriege
# set obj rect from '26.02.1813', graph 0 to '20.11.1815' , graph 1 back
# set label "Befreiungskriege"      at '30.06.1814', graph 0.8 rotate by +60 center front
# == 1. Weltkrieg
  set obj rect from '28.07.1914', graph 0 to '11.11.1918' , graph 1 back
  set label "1. Weltkrieg"          at '30.06.1916', graph WW1 rotate by +60 center front
# == 2. Weltkrieg
  set obj rect from '01.09.1939', graph 0 to '04.05.1945' , graph 1 back
  set label "2. Weltkrieg"          at '30.06.1942', graph WW2 rotate by +60 center front
# == Dädärä
if (DDR > 0) {
  set obj rect from '07.10.1949', graph 0 to '03.10.1990' , graph 1 back
  set label "Deut. Teilung"         at '01.01.1970', graph DDR rotate by +60 center front
} 


### Markierung für Groß- und Millionenstadtgrenze 
# wenn oben die Variable 'gemeinde' auf '1' gesetzt wurde setzen wir Maker
if (ist_gemeinde eq '1') { 
  # je einen Marker (arrow) für 100.000 und 1.000.000
  set arrow from my_xrange_min,  '100000' to my_xrange_max,  '100000' nohead lc rgb '#B0FF0000' back
  set arrow from my_xrange_min, '1000000' to my_xrange_max, '1000000' nohead lc rgb '#B0FF0000' back
}  


### Einzelwerte (Beispiele)
# set label 1 'Bsp. Text 1' at '25.05.1987',  5000 point pointtype 3 pointsize 0.8
# set label 2 'Bsp. Text 2' at '09.05.2011', 10000 point pointtype 3 pointsize 0.8


### Außenränder (keine Angabe entspricht Automatik)
# keine Angabe hinter Xmargin entspr auto 
# zur Positionierung siehe 'Coordinates' in: 
# http://gnuplot.sourceforge.net/docs_4.2/node49.html#448
set lmargin 
set rmargin at screen 0.990
set bmargin at screen 0.175
set tmargin at screen 0.960
# grauer Hintergrund für Testzwecke
# set object rectangle from screen 0,0 to screen 1,1 fillcolor rgb my_black_e0 behind


### Dateiausgabe definieren 
# Ausgabeformat: Wir erzeugen SVG
# Die Ausgabedaten leiten wir bei UNIX in eine Pipe und sind so beim Namen der
# Ausgabedatei flexibel (Aufruf: Einwohnerentwicklung_von_Bielefeld.gpl > Einwohnerentwicklung_von_Bielefeld.svg) 
# Windowsbenutzer, die mit Pipes nicht umgehen könnten, sollten das Kommentar-
# zeichen vor dem  'set output ...' folgenden Befehl entfernen. 
# set output 'Einwohnerentwicklung_von_Bielefeld.svg' 
  set term svg size 800,400 font "Arial,16"
# Die Parameter von 'set term' sind so gewählt, das man in Wikipedia bei einer 
# Einbindung [[Datei:Einwohnerentwicklung_von_Bielefeld.svg|mini|400px|Text]] noch Schrift/Details 
# erkennen kann. 


### Log10 Skalierung für Y-Achse wählen 
# Für Formatparam siehe http://gnuplot.sourceforge.net/docs_4.2/node184.html
# Wert für ytics hier mit 10 Überschreiben damit die Mantisse wegfallen kann. 
# Ansonsten müsste sie wie in 'set format y "%.1l*10^{%L}"; set ytics 5' angegeben 
# werden was ungerade Werte ergibt. 
# xrange muss größer Null beginnen. Kann oben mit my_yrange_min auf 10, 100, 1000 ... 
# gesetzt werden oder hier auskommentieren. 
#  set logscale y 10; set format y "  10^{%L}"; set ytics 10; set mytics 10; 
#  set lmargin 5 # ev. bei 'Schwestergrafik' gleichen fixen Wert setzen.
#  set yrange [ 1000 : 1000000 ] # yrange manuell Anpassen!!!


### Abkürzungen hinter dem Plot-Befehl:
#       u : using
#       w : with
#      lc : linecolor
#      lt : linetype 
#      lw : linewidth
#      pt : pointtype  
#      ps : pointsize
#      lp : linespoints
#       p : points
#       t : title
#     not : notitle
# filledc : filledcurves (Bsp.: File:Einwohnerentwicklung von Wanne-Eickel.svg)
#     rgb : RedGreenBlue
#      ax ; axes (bei der Plotanweisung meist x1y1)


### Daten per Here-Document
# (siehe Abschntt 'Inline data and datablocks' in
# http://www.gnuplot.info/docs_5.2/Gnuplot_5.2.pdf )
#
$my_HD_1 << EndOfData_1
# bei 'plot' mit '$my_HD_1 use 1:2 with ...' einbinden
...
EndOfData_1


### Plot
# Jede Kurve wird zweimal gezeichnet. Beim ersten mal mit etwas Transparenz
# damit es heller wird. Beim zweiten mal werden die Punkt dunkel
# nachgezeichnet. Dadurch sollte der Betrachter besser erkennen können, wo
# Messpunkte fehlen. 
#
# Erzeugen der Ausgabe 
plot \
  my_data  u 1:2 ax x1y1 w lp lc rgb my_darkblue_40  lt 1 lw 1.5 pt 7 ps 0.22   t 'Einw. Entw.',\
  my_data  u 1:2 ax x1y1 w  p lc rgb my_darkblue_00  lt 1 lw 1.5 pt 7 ps 0.22 not              ,\
# $my_HD_1 u 1:2 ax x1y1 w lp lc rgb my_darkred_40   lt 1 lw 1.5 pt 7 ps 0.22   t 'Einw. Entw.',\
# $my_HD_1 u 1:2 ax x1y1 w  p lc rgb my_darkred_00   lt 1 lw 1.5 pt 7 ps 0.22 not              ,\

Daten

Die Datei "Einwohnerentwicklung_von_Bielefeld.dat", die notwendige CSV Daten enthält, wurde wie in File:Einwohnerentwicklung von Bielefeld.svg#daten beschrieben erzeugt. Eventuelle Korrekturen/Ergänzungen der Daten bitte dort vornehmen.

说明

添加一行文字以描述该文件所表现的内容

此文件中描述的项目

描繪內容

65,783 字节

400 像素

800 像素

image/svg+xml

9cf1c9cbe33299e022e3afae368a02aff427778a

文件历史

点击某个日期/时间查看对应时刻的文件。

日期/时间缩⁠略⁠图大小用户备注
当前2019年8月21日 (三) 19:512019年8月21日 (三) 19:51版本的缩略图800 × 400(64 KB)Summer ... hier!+Wert 2018
2018年11月7日 (三) 09:272018年11月7日 (三) 09:27版本的缩略图800 × 400(77 KB)Summer ... hier!+Wert 2017
2018年2月19日 (一) 23:302018年2月19日 (一) 23:30版本的缩略图800 × 400(45 KB)Summer ... hier!{{Information |Description = {{de|Einwohnerentwicklung von Bielefeld}} |Source = {{own}} |Author = ~~~~ |Date = }} == {{int:license-header}} == {{self|Cc-zero}} == Gnuplot script to generate this plot == {{gnuplot}}{{Val...

以下页面使用本文件:

全域文件用途

以下其他wiki使用此文件:

元数据