Keynote 09 Diagramm erstellen mit nicht-numerischer Bezeichnung der x-Achse

R

robert170

Aktives Mitglied
Thread Starter
Dabei seit
29.12.2006
Beiträge
797
Reaktionspunkte
27
Hallo,
ich versuche gerade ein Diagramm zu erstellen, bei dem 4 Punkte dargestellt werden sollen, dabei soll die x-Achse keine Nummernwerte enthalten, sondern zwei Textbezeichnungen, das scheint nicht so trivial zu sein....
Ich habe mal einen Screenshot angehängt.
Gibt es da Tipps? Danke!
Grafik-1.png
 
Tips für was? Ich denke mal dass sich kein Mensch vorstellen kann was Du willst oder wie es aussehen soll.
 
... meinen Anhang hast du aber schon gesehen? Es geht darum, auf der x-Achse die Werte den beiden Kategorieren "GTR" und "CAS" zuzuordnen und nicht x-Werten wie 1, 2,3..
 
Klar habe ich den gesehen. Es war aber unklar, ob das ein Ist- oder ein Soll-Ergebnis ist.
Es ist zumindest für mich weiter unklar wie viele Werte Du hast und wie das am Ende aussehen soll.
 
im Prinzip genau so, wie der Screenshot. Der kommt aus SPSS (Statistik-Software), aber da kann man z.B. die Achsenskalierung nicht anpassen. Die y-Skala soll von 0 bis 8 gehen, auf der x-Skala gibt es Werte, die dem Eintrag GTR zugeordnet sind und solche, die dem Eintrag CAS zugeordnet sind.
 
:confused:
Also X=1 oder X=2, je nach Zuordnung?
Wertepaare sind dann

X=1, Y=1,
X=1, Y=2,
X=1, Y=3,
X=1, Y=4,
X=1, Y=5

X=2, Y=1,
X=2, Y=2,
X=2, Y=3,
X=2, Y=4,
X=2, Y=5

und wie soll damit das Diagramm aussehen???? Ich checke es nicht!!
 
Also mit Mathematica ist das ganze ziemlich einfach. Man definiert zunächst zwei Tabellen (je Kurve eine) mit den Punkten. Dabei ist wichtig den Punkten, die am Ende bei "CAS" liegen sollen einen gemeinsamen x-Wert zuzuordnen (bei mir 1) und den Punkten bei "GTR" einen gemeinsamen anderen x-Wert (bei mir 2). Die Werte habe ich grob aus deinem Plot abgelesen.

Code:
Tab1 = {{1, 3}, {2, 3.9}};
Tab2 = {{1, 4.95}, {2, 4.1}};

Danach erledigt dann folgender Befehl den Rest:

Code:
plot = ListPlot[{Tab1, Tab2}, Frame -> True, Axes -> False, 
  Joined -> True, PlotMarkers -> Automatic, 
  PlotRange -> {{0.75, 2.25}, {0, 8}}, 
  FrameTicks -> {{{0, 2, 4, 6, 8}, None}, {{{1, "CAS"}, {2, "GTR"}}, 
     None}}]

Kurz zur Erklärung, {Tab1,Tab2} sorgt dafür, dass je eine Kurve mit den Werten aus Tab1 und Tab2 geplotet wird, Frame->True, Axel-False sorgt dafür, dass der Plot "eingerahmt" wird und keine Achsen benutzt werden. Joined->True verbindet die Punkte einer Kurve, PlotMarkers->Automatic erzeugt Markierungen für die Punkte (ansonsten würde man im Plot nur die Verbindungslinien sehen). Mit PlotRange -> {{0.75, 2.25}, {0, 8}} wird der geplotete Wertebereich angegeben, für die y-Werte wie gewünscht zwischen 0 und 8, den Bereich für die x-Achse wählt man die Grenzen so, dass die Punkte nicht auf dem Rahmen liegen. Mit FrameTicks -> {{{0, 2, 4, 6, 8}, None}, {{{1, "CAS"}, {2, "GTR"}},
None}} wird dann die Beschriftung den Rahmens angepasst. Der linke Teil des Rahmens wird mit 0, 2, 4, 6, 8 beschriftet, der rechte Teil erhält keine Beschriftung (None), der untere Teil des Rahmes erhält bei 1 die Beschriftung CAS und bei 2 die Beschriftung GTR. Der obere Teil des Rahmes wird wieder nicht beschriftet.

Eigentlich wollte ich eine PDF-Datei des Plots anhängen, geht nur leider nicht. Im Prinzip sieht es aber deinem Plot sehr ähnlich nur eben mit angepasster y-Achse.

Edit: Eine Anmerkung noch. Es ist schlechter Stil die Punkte einer Datenreihe zu verbinden, wenn die zwischen den Punkten liegenden x- und y-Werte nicht definiert sind. In deinem Beispiel, was liegt denn auf halber Strecke zwischen "CAS" und "GTR"?

Edit2: Mit Gnuplot sollte es auch gehen (Stichwort "set xtics"), allerdings solltest du dich dazu selbst in die Software einarbeiten.
 
Zuletzt bearbeitet:
@Texnican:
- Danke, mathematica hat ein Freund von mir, das schau ich mir mal an.
- xtics wollte ich mir eh mal anschauen, da ich davon einige machen muss, bietet sich das mal an.
- Eben das mit den Linien ist schlechter Stil, das macht SPSS automatisch, daher bin ich damit ja auch nicht zufrieden.
@falkgottschalk, danke trotzdem fürs antworten:D
Ich meinte im Wesentlichen einfach so wie mein Anhang, den habe ich jetzt mehr oder weniger mit der Hand mit OmniGraphSketcher gemacht....

Bildschirmfoto 2013-03-19 um 17.39.19.png
 
Mit Grid und Legende lautet der Befehl dann übrigens wie folgt (funktioniert so nur mit Version 9):

Code:
plot = ListPlot[{Tab1, Tab2}, Frame -> True, Axes -> False, 
  Joined -> True, PlotRange -> {{0.75, 2.25}, {0, 8}}, 
  FrameTicks -> {{{0, 2, 4, 6, 8}, None}, {{{1, "CAS"}, {2, "GTR"}}, 
     None}}, PlotMarkers -> Automatic, GridLines -> Automatic, 
  PlotLegends -> Placed[{"Grundkurs", "Leistungskurs"}, Below]]
 
Zurück
Oben Unten