Kategorie-Archiv: Emacs

Zusatzpakete in Emacs

 

Funktionelle, reproduzierbare Anwendungen unter Emacs – etwa statistische Berechnungen mit R oder Diagrammerstellungen mit Gnuplot erfordern die Installation von Zusatzpaketen. Ich bin dabei wie folgt vorgegangen: Weiterlesen ..

Fußnoten:

1

Anderswo kostet allein ein Textexpanderprogramm im Abo 40 Dollar jährlich. In Org Mode bekommt man das gratis, wenn man beispielsweise das Paket ,,YASnippet“ aktiviert.

Balkendiagramme mit Gnuplot

 

Es geht weiter mit den Basics der reproduzierbaren Diagrammerstellung mit Gnuplot in Emacs Org-mode. In diesem Beitrag wird Schritt für Schritt gezeigt, wie Balkendiagramme erstellt und modifiziert werden können. Zuerst zeige ich Beispiele für reine Balkendiagramme, danach kommen Beispiele für die Kombination mit anderen Diagrammtypen. Die Datenbasis wird als Tabelle mit Umsatz-Ist und -Sollwerten wiederum in Org-mode selbst angelegt. Im ersten Teil werden die Datentabelle und der Code mit Erläuterungen dargestellt. Alternativ können ebenso externe Datenfiles ausgewertet werden, was ich in einem späteren Beitrag noch anhand weiterer Beispiele zeigen werde. Erläuterungen im Code werden übrigens mit einer Raute (#) eingeleitet und sind selbst nicht Bestandteil der Programmausführung. Weiterlesen ..

 

Mit Python Grafik drehen

Bedarf für Anwendung

Gnuplot ist ein mächtiges Programm zur Analyse und Visualisierung statistischer Daten,
welches direkt aus Emacs Org-mode heraus mit Anweisungen in Plaintext bedient werden kann.

Leider bietet Gnuplot von Haus aus nicht die Möglichkeit zur Ausgabe vertikaler
Balkendiagramme an. Balken werden nur horizontal, also nebeneinander auf der x-Achse
angeordnet. Diese Darstellungsform reicht nicht aus, insbesondere dann nicht, wenn man
Geschäftsgrafiken nach professionellen Standards erstellen will, wie sie beispielsweise
Edward R. Tufte1 oder fortführend Holger Gerths und Rolf Hichert2 aufstellten.

Balken auf der horizontalen x-Achse angeordnet werden danach nur für zeitliche Abläufe
eingesetzt. Die x-Achse ist ein Zeitstrahl. Eine andere Verwendung – etwa vergleichende
Balken für Daten von Subgruppen – ist auf horizontaler Ebene nicht gestattet. Solche
vergleichende Darstellungen ohne Zeitbezug sind ausschließlich vertikal, also an der
y-Achse übereinander angeordneten Balken vorbehalten.

Die Lösung: Balkendiagramm um 90 Grad drehen

Ein Diagramm mit vertikal angeordneten Balken erhält man im Grundsatz, indem man ein
Diagramm mit horizontaler Balkenanordnung einfach um 90 Grad nach links oder rechts
dreht. Mit so einer Drehung des gesamten Diagramms kippen allerdings auch die
Beschriftungen um 90 Grad auf die Seite. Damit die Ansicht wieder stimmt,. muss man also
vorher die Beschriftungen (zurück-)drehen. 90 Grad nach links und dann 90 Grad nach rechts
gekippt, ergibt effektiv 0 Grad Drehung.

Dieses Drehen der Beschriftungen lässt Gnuplot intern zu. Ich zeige in meinem Artikel
,,Umsatztabelle plotten mit Balken“ einige Beispiele dazu auf.

Schwieriger wird es dann mit dem Drehen des Balkendiagramms als Ganzes. Gnuplot selbst
kann das nicht, zumindest habe ich in der Literatur und im Netz dazu keine Hinweise
gefunden.

Grundsätzlich bieten sich in Org-mode zwei Konzepte zur Umgehung an: Möglichkeit 1 besteht
darin, dass man die mit Gnuplot erzeugten und gespeicherten Balkendiagramme unverändert
lässt und erst beim Export der Org-mode Datei in die Ausgabeformate PDF bzw. HTML
dreht. Exportiert man nach PDF, ist über LaTex mit dem Befehl #+ATTR_LATEX: :options
angle=90
möglich. Will man dagegen nach HTML exportieren, bleibt dieser Latex-Befehl
,,angle=90“ wirkungslos. Man könnte dann sicher mit CSS etwas machen, was die Sache
allerdings weiter verkompliziert. Vor allem wirkt nachteilig, dass dann der
Pogrammcode in Org-mode auseinanderfällt. Man müsste dann für jedes Format eine
eigene Ausgaberoutine schreiben, einmal mit LaTeX (PDF-Export) und einmal mit CSS
(HTML-Export). Von der ursprünglichen Universalität von Org-Mode bliebe nicht viel übrig.

Ich favorisiere deshalb einen anderen Ansatz: Dieser besteht darin, das jeweils in Gnuplot
erzeugte Balkendiagramm mit horizontale Ausrichtung mit einem anderen Programm zu öffnen,
zu drehen und dann erneut abzuspeichern. Wenn dann dieses bereits gedrehte Diagramm mit
vertikal angeordneten Balken in Org-mode geladen wird, muss es nicht noch einmal gedreht
werden, sondern kann so (gedreht), wie es ist, ohne weitere Eingriffe exportiert werden,
als PDF oder als HTML.

Diagramme drehen mit Python

Es gibt eine ganze Reihe von Programmen, mit denen man Grafikdateien öffnen, die
geöffneten Grafiken drehen und schließlich wieder speichern kann. Jedes Grafikprogramm
kann das. Das Problem dabei ist, dass dann die durchgehende Steuerung der Ausgabe aus
Org-mode heraus unterbrochen wird. Man müsste dann in Org-Mode ein Programm zur
Datenanalyse bis zur Diagrammerstellung ausführen, dann ein externes Programm starten, in
dem die Grafik gedreht wird, und dann wieder Org-mode starten, um die gedrehten Grafiken
als HTML oder PDF zu exportieren. Auch dieser Weg erscheint zu umständlich.

Die Alternative dazu wäre die Nutzung eines Programms, welches wie Gnuplot auch direkt aus
Org-mode heraus aufgerufen und ausgeführt werden kann. Python ist dazu in der
Lage. Folgender Workflow zur durchgängigen Erstellung vertikaler Balkendiagramme in
Org-Mode folgt daraus:

  1. Datenanalyse mit Anlage und Speicherung eines horizontal angeordneten Balkendiagramms
    mit ggf. gedrehten Beschriftungen und angepassten Diagrammgrößen in Gnuplot
  2. Öffnen, Drehen und erneutes Speichern dieses dann vertikal angeordneten Balkendiagramms
    in Python
  3. Einlesen dieses gedrehten Balkendiagramms in Org-mode für den Export in HTML bzw. PDF

Python-Paket ,,Pillow“

Python benötigt zur Ausführung grafischer Optionen die ,,Image Library Pillow“. Diese
muss einmalig installiert werden. Unter Mac OS X 10.11.2 waren dazu im Terminal-Fenster
folgende Befehle erforderlich:3

Terminal:

~ user$ sudo pip install pillow
Password: ******
~ user$ sudo su
SH-3.2# easy_install pip
SH-3.2# xcode-select --install
SH-3.2# pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

Python starten:

SH-3.2# Python
>>> from PIL import Image

Jetzt ist das Image-Paket von Python einsatzbereit. Es folgt die Drehung einer Grafik als
Beispiel:

>>> im1 = Image.open("Umsatztabelle27.png")
>>> im1.show()
>>> im2=im1.rotate(270)
>>> im2.save("Umsatztabelle27gedreht.png")
>>> im2.show()

Linkempfehlungen:

 Fußnoten:

1 Edward Tufte: The Visual Display of Quantitative Information. 2001.

2 Rolf Hichert Holger Gerths: Geschäftsdiagramme mit Excel nach den SUCCESS-Regeln  gestalten. 2013.

3 Eine Installation von XCode ist Voraussetzung und muss vorher ggf. ausgeführt werden.

Umlaute und Sonderzeichen in Gnuplot

Umlaute und Sonderzeichen in Gnuplot

Führt man Gnuplot aus Emacs Org-mode heraus aus, werden deutsche Umlaute und Sonderzeichen nicht bzw. nicht richtig wiedergegeben. Für eine korrekte Ausgabe sind zwei Schritte erforderlich: Weiterlesen ..

Gnuplot: Umsatztabelle plotten mit Linien und Punkten

Umsatztabelle plotten mit Linien und Punkten

In diesem Beispiel wird in Emacs Org-mode eine einfache Umsatztabelle angelegt und
anschließende mit Gnuplot 4 mal hintereinander geplottet. Der Unterschied zwischen den
Grafiken besteht in der Darstellung der Datenpunkte. Weiterlesen ..

Reproduzierbare Unternehmensanalyse (Reproducible Research)

Unternehmensanalyse lässt sich verstehen als systematische Erfassung und Bewertung
empirischer Sachverhalte in Organisationen, die einer wirtschaftlichen Tätigkeit
nachgehen.

Um diese Definition operationalisierbar zu gestalten sind folgende Fragen zu beantworten:

  1. Was ist unter ,,empirisch“ zu verstehen?
  2. Was bedeutet ,,systematisch“?
  3. Welche ,,Sachverhalte“ sind relevant?
Weiterlesen ..

1 Atteslander: Methoden der empirischen Sozialforschung. 1984, S. 16.

2 Bortz\Döring: Forschungsmethoden und Evaluation für Human-und Sozialwissenschaftler: Limitierte Sonderausgabe. 2007.

3 Gutenberg: Grundlagen der Betriebswirtschaftslehre: Band 1: Die Produktion. 1954, S. 379.

Markdown unter Emacs: Eine echte Workflow-Option?

Wozu Markdown?

Der Sinn von Markdown als Auszeichnungssprache besteht in der maximalen Vereinfachung des Editierens leicht lesbarer Texte. Einfache Formatierungsanweisungen werden direkt in den
laufenden Text geschrieben, ohne dass seine Lesbarkeit darunter nennenswert leidet. Veröffentlichungen im Internet – wie dieser Beitrag hier – entsprechen Markdown besonders, weil der verlustfreie Export nach HTML integraler Bestandteil ist. Keine überfrachteten Symbolleisten, keine verschachtelten Menüs, keine endlosen Prozeduren einen Text filigran zu positionieren oder kunterbunt in 1000 Schriftarten zu formatieren: Konzentration auf den Inhalt bei sachlicher und zugleich ansprechender Form nach dem Export in HTML oder auch in andere Formate wie PDF, RTF, Word oder LaTeX. Markdown ist Reduzierung auf die wesentlichen Elemente des Schreibens: Basics zur Hervorhebung von Text (fett, kursiv), Überschriften zur Gliederung eines Dokuments, Absätze, Zitate, Codeblöcke, Fußnoten, schlichte Tabellen, die Einbindung von Links und Grafiken – mehr braucht es meist nicht. Fließtext ohne Schnickschnack schreiben, bei permanenter, vielleicht sogar lernfähiger Rechtschreibprüfung als Luxus, das ist die Königsdisziplin für Markdown-Anwender. Weiterlesen ..


  1. GPN12 = Gulaschprogrammiernacht 2012 in Karlsruhe  ↩