0 votes
in SoSci Survey (dt.) by s238535 (110 points)

Hallo, ich würde gerne ein mehrdimensionales Balkendiagramm für meinen Fragebogen erstellen, allerdings werden die Subskalen immer als Items abgefragt. Bei diesem Befehl bekomme ich nur die ersten vier angezeigt und auch nicht als Balken, sondern als Linien.

$test= diagram2("polar",
array(
    array('Soziale Kontakte', 'Selbstkenntnis', 'Körperliche Selbstfürsorge', 'Optimierung', 'Sinn', 'Positive Lebensgestaltung', 'Gelassenheit', 'Genuss', 'Coping', 'Reflexion', 'Selbstbestimmte Lebensgestaltung'),
     array(1,2,3),
array(4,5,6),
array(7,8,9),
array(10,11,12),
array(13,14,15,16),
array(17,18,19,20),
array(21,22,23),
array(24,25,26),
array(27,28,29),
array(30,31,32),
array(33,34,35),
),
array(
    'width' => 600,
    'height' => 200,
    'labelwidth' => 650,
    'min' => 0,
    'max' => 20,
    'labels' => true,
    'limit' => array(0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5),
    'rowcolor' => array('0000FF')
  )
);
html($test);

1 Answer

0 votes
by SoSci Survey (328k points)

Der Parameter "polar" besagt, dass Sie ein Polaritätenprofil (also eine Linie) anzeigen möchten. Einen anderen Diagrammtyp unterstützt diagram2() im Moment auch nicht.

Sehen Sie sich stattdessen bitte einmal Chart.js an:
Persönliche Auswertung für den Teilnehmer / Mehrere Wert

by s238535 (110 points)
Danke! Wenn ich den Befehl so eingebe bekomme ich nicht alle Beschriftungen angezeigt und die Polaritäten sind auch nicht untereinander/verbunden, sondern nebeneinander versetzt, sodass man sie nicht den Beschriftungen zuordnen kann. Wie kann man das denn korrigieren?
by SoSci Survey (328k points)
Wenn Sie einen Link posten, wo ich mir das Ergebnis ansehen kann, gebe ich gerne Tipps. Generell ist Chart.js aber von SoSci Survey unabhängig und auf der Website des Projekts ausführlich dokumentiert: https://www.chartjs.org/
by SoSci Survey (328k points)
Dieser Link ist leider nicht gültig. Wenn es zum Ansehen des Charts notwendig ist, Angaben im Fragebogen zu machen, dann füllen sie gerne bis zu dieser Stelle aus und posten Sie den Link aus der Browser-Adressleiste. Ansonsten kann man über die Navigation auch Pretest-Links erstellen.
by SoSci Survey (328k points)
Wenn ich es korrekt sehe, dann verwenden Sie weiterhin die Funktion diagram2() und nicht Chart.js.

Die blauen vertikalen Striche auf der linken Seite zeigen die Grenzen, die mit "limit" definiert wurden. Da bin ich nicht ganz sicher, warum diese auf den ganzen Zahlen liegen, aber das sehen wir uns noch an.

Die diagonalen Linien, die Sie sehen, sind die Arrays, die Sie als Daten definiert haben, also

array(1,2,3)

ist die diagonale Linie ganz links. Die Arrays mit 4 Werten, also z.B.

array(13,14,15,16),

erzeugen die längeren Linien in der Mitte. Das Sie das Maximum auf 20 definiert haben, werden die Linien ab

array(21,22,23),

nicht mehr angezeigt.

Die Darstellung entspricht also Ihrem PHP-Code. Jetzt wäre die Frage, was Sie eigentlich zeigen möchten? Eine einzelne Linie? Dann dürfen Sie unter den Labels nur ein Array übergeben. Zwei Linien? Dann sollten es zwei Arrays sein.
by s238535 (110 points)
Danke schon mal.
Ich wollte eigentlich eine Linie, aber dass der Mittelwert der ersten drei items neben soziale Kontakte mit dem der nächsten drei items neben Selbstkenntnis verbunden ist usw.
by SoSci Survey (328k points)
> ... aber dass der Mittelwert der ersten drei items...

Den Mittelwert können Sie mit valueMean() berechnen, und das Ergebnis nehmen Sie dann ins Array auf. Für valueMean() brauchen Sie die vollständigen Variablennamen. Die Funktion diagram2() berechnet nichts, sondern zeigt nur Daten an.
by s238535 (110 points)
Die Mittelwerte habe ich vorher berechnet. Wie kann ich das ins array einbauen und funktioniert das, dass die Mittelwerte dann auch neben den dazugehörigen Beschriftungen angezeigt werden?
by SoSci Survey (328k points)
Wenn Sie den Mittelwert in einer PHP-Variable abgelegt haben, dann könnte es so aussehen:

array(
      array('Soziale Kontakte', 'Selbstkenntnis', 'Körperliche Selbstfürsorge'),
     array($mwKontakte, $mwSelbstkenntnis, $mwSelbstfuersorge)
)

> funktioniert das, dass die Mittelwerte dann auch neben den dazugehörigen Beschriftungen angezeigt werden?

Das werden sie die Punkte im Moment auch ... also neben den ersten 3 bzw. 4 Beschriftungen, für die Sie bisher Werte hinterlegt haben.
by s238535 (110 points)
Ich have die Mittelwerte mit der Value Funktion ausgerechnet, wie kann ich siein einer PHP-Variable (also bei ihrem Beispiel $mwKontakte) ablegen?
by SoSci Survey (328k points)
Wie sieht ihr PHP-Code für die Berechnung denn aus?
by s238535 (110 points)
Ich habe insgesamt 11 php Codes jeweils für die Items, die die Skala abbilden.
Das ist zum Beispiel der Erste:

$value = valueMean('FK_01', array(1,2,3));
html('
  <p>Ihr durchschnittlicher Lebenskunstwert der Skala
Soziale Kontakte liegt bei '.sprintf('%1.1f', $value).'</p>
');
by SoSci Survey (328k points)
Hier haben Sie den Mittelwert bereits in der Variable $value gespeichert.

Wenn also die Code für das Chart im selben PHP-Code-Element stehen würde, würden Sie dort einfach schreiben:

$test= diagram2("polar",
array(
    array('Soziale Kontakte', 'Selbstkenntnis'),
    array($value, $value2)
));

Wenn das Diagramm in einem anderen PHP-Code-Element aufgerufen wird, schreiben Sie das valueMean() am besten einfach nochmal vor den Aufruf, z.B.

$value1 = valueMean('FK_01', array(1,2,3));
$value2 = valueMean('FM_01');
$value3 = valueMean('FG_01');
by s238535 (110 points)
Das Problem ist, dass die Mittelwerte für jeweils 3 Items einer Frage berechnet werden. Der erste php code ist ja
$value = valueMean('FK_01', array(1,2,3));
html('
  <p>Ihr durchschnittlicher Lebenskunstwert der Skala
Soziale Kontakte liegt bei '.sprintf('%1.1f', $value).'</p>
');

Der zweite php Code ist dann:
$value = valueMean('FK_01', array(4,5,6));
html('
  <p>Ihr durchschnittlicher Lebenskunstwert der Skala
Selbstkenntnis liegt bei '.sprintf('%1.1f', $value).'</p>
');

usw.

Wenn man aber dabei $value1 bei dem ersten php code so benennt und bei dem zweiten $value2 kommt eine Fehlermeldung.
by SoSci Survey (328k points)
Wenn Sie den Namen der Variable im weiteren Verlauf des PHP-Codes auch anpassen ... welche Fehlermeldung kommt denn?
by s238535 (110 points)
Die Fehlermeldung wurde behoben und auch sonst funktioniert soweit alles, danke!!! Ich hätte nur noch die Frage, wie ich dei x-Achse beschriften kann also dass dort die Markierungen numerisch beschriftet werden.
by SoSci Survey (328k points)
Eine Beschriftung der x-Achse ist in der Funktion diagram2() bisher nicht vorgesehen, soweit ich mich erinnere (und es die Refernez sagt).

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...