Wertegrafik erstellen Teil 1

From Scribus Wiki
Jump to: navigation, search
Dieser Artikel gehört zur Kategorie Deutsche HOWTOs.
Installation Anwendungsfragen PDF-Export DTP Sonstiges
Siehe auch:
Wertegrafik erstellen Teil 2

Mit der Fähigkeit von Scribus automatisch Linien und Textrahmen zu zeichnen, kann ohne großen Aufwand eine "Rahmenstruktur" für eine Wertegrafik automatisch erstellt werden. Hier zeige ich ein paar Basis-Pythonbefehle um diese Aufgabe zu lösen. Diese Erstversion erzeugt drei Abfrage(Eingabe)-Boxen – die erste für den Grafiktitel, die zweite und dritte für die Beschriftung der X-und Y-Achse. Die Größenangaben im Skript gehen davon aus daß Punkt als Einheit im Seitenfomat eingestellt ist. (Allgemeine Einstellungen)

Für Windows mußt Du eine Schrift im Skript verwenden die in Deiner Windowsinstallation auch vorhanden ist. Die tatsächlichen Namen der Schrift herauszufinden kann etwas schwierig sein. Ich schlage vor Du überprüfst die Namen anhand des Skriptes FontSample (Menü > Script > Scripte für Scribus > FontSample), welches Dir den exakten Namen der Schriftdatei für die Verwendung in graph.py ausgibt. Du mußt das Skript nicht komplett durchlaufen lassen – starte das Skript und schaue im sich öffnenden Fenster in die Liste der Fonts (auf der linken Seite) um den gesuchten Namen zu finden, anschließend klicke auf Cancel. Ich habe beispielsweise in der Schriftliste von WordPerfect nachgesehen, und die von mir gewünschte Schrift war als "Futura Bk BT" aufgeführt – und damit hat das Skript nicht funktioniert. Die Überprüfung mit FontSample ergab den korrekten Namen "Futura Bk BT Book".

Beispiel für die Verwendung von graphDE.py


GR1Grafik.png

Skript: graphDE.py

#!/usr/bin/env python

# File: graph.py
# originally 2006.05.17
# Gregory Pittman
# creates basic graph with axis labels
# graphDE.py
# erzeugt eine Grafik mit Titel und Achsenbezeichnungen
# Übersetzung der Captions, Meldungstexte und Kommentare
# 17. Februar 2007 von Uchiki

import scribus

xorigin = 150      # x-Ursprung der Grafik
yorigin = 450     # y-Ursprung der Grafik
xaxis=400      #Länge der X-Achse
yaxis=350      #Länge der Y-Achse
color="Black"
a = 1.5 # Linienstärke für die Achsen
if scribus.haveDoc():
# Drei Abfrageboxen für Titel, Beschriftung X-Achse, Beschriftung Y-Achse
    title = scribus.valueDialog('Titel','Titel für Grafik eingeben')
    xlabel = scribus.valueDialog('Beschriftung X-Achse','Beschriftung X-Achse eingeben')
    ylabel = scribus.valueDialog('Beschriftung Y-Achse','Beschriftung Y-Achse eingeben')
    scribus.setRedraw(1)
    scribus.setUnit(0)
# Zuerst die X-Achse zeichnen
    d = scribus.createLine(xorigin,yorigin,xorigin+xaxis,yorigin)
    scribus.setLineWidth(a, d)
    scribus.setLineColor(color, d)
    scribus.setFillColor(color, d)
# Nun die Y-Achse
    e = scribus.createLine(xorigin,yorigin,xorigin,yorigin-yaxis)
# Für Version 1.3.3.1 die obere Zeile auskommentieren und bei der unteren Zeile die Auskommentierung aufheben
#    e = scribus.createLine(xorigin,yorigin,xorigin+yaxis,yorigin)
    scribus.setLineWidth(a, e)
    scribus.setLineColor(color, e)
    scribus.setFillColor(color, e)
# Für version 1.3.3.1 bei der nächste Zeile die Auskommentierung aufheben
#    scribus.rotateObject(90,e)
# Der Diagrammtitel in roter Schrift mit Rahmen
    T = scribus.createText(60, 45, 500, 60)
    scribus.setTextColor("Red", T)
    scribus.setText(title, T)
    scribus.setTextAlignment(1, T)
    scribus.setFont("Times New Roman Bold", T)
# für Windows den Font auf "Times New Roman Bold" gesetzt
    scribus.setFontSize(28, T)
# Beschriftung der X-Achse
    XL = scribus.createText(xorigin, yorigin + 20, xaxis, 40)
    scribus.setText(xlabel, XL)
    scribus.setTextAlignment(1, XL)
    scribus.setFont("Times New Roman Bold", XL)
# für Windows den Font auf "Times New Roman Bold" gesetzt
    scribus.setFontSize(20, XL)
# Beschriftung der Y-Achse, um 90 Grad gedreht
    YL = scribus.createText(xorigin - 60, yorigin, yaxis, 40)
    scribus.setText(ylabel, YL)
    scribus.setTextAlignment(1, YL)
    scribus.setFont("Times New Roman Bold", YL)
# für Windows den Font auf "Times New Roman Bold" gesetzt
    scribus.setFontSize(20, YL)
    scribus.rotateObject(90,YL)

    scribus.redrawAll()