Kalenderdiagramm

Übersicht

Hinweis:JavaScript zählt Monate ab null: Januar ist 0, Februar ist 1 und Dezember ist 11. Wenn Ihr Kalenderdiagramm um einen Monat abweicht, ist dies der Grund dafür.

Ein Kalenderdiagramm ist eine Visualisierung, mit der Aktivitäten über einen längeren Zeitraum wie Monate oder Jahre hinweg dargestellt werden. Sie sind am besten geeignet, wenn Sie veranschaulichen möchten, wie eine bestimmte Menge je nach Wochentag variiert oder sich im Laufe der Zeit entwickelt.

Das Kalenderdiagramm wird in zukünftigen Versionen von Google Charts möglicherweise grundlegend überarbeitet.

Kalenderdiagramme werden im Browser mithilfe von SVG oder VML gerendert, je nachdem, was für den Browser des Nutzers geeignet ist. Wie bei allen Google-Diagrammen werden auch bei Kalenderdiagrammen Kurzinfos angezeigt, wenn der Nutzer den Mauszeiger auf die Daten bewegt. Und der Beitrag, der wirklich wichtig ist: Unser Kalenderdiagramm wurde von der D3-Kalendervisualisierung inspiriert.

Ein einfaches Beispiel

Angenommen, wir möchten zeigen, wie sich die Zuschauerzahlen einer Sportmannschaft im Laufe der Saison veränderten. Bei einem Kalenderdiagramm können wir anhand der Helligkeit Werte angeben und Trends auf einen Blick erkennen lassen:

Wenn Sie den Mauszeiger auf die einzelnen Tage bewegen, werden die zugrunde liegenden Datenwerte angezeigt.

Laden Sie zum Erstellen eines Kalenderdiagramms das Paket calendar und erstellen Sie dann zwei Spalten, eine für die Datumsangaben und eine für die Werte. Für eine zukünftige Version von Google Charts wird eine optionale dritte Spalte für benutzerdefinierte Stile hinzugefügt.

Füllen Sie dann die Zeilen mit Datum/Wert-Paaren, wie unten gezeigt.

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load("current", {packages:["calendar"]});
      google.charts.setOnLoadCallback(drawChart);

   function drawChart() {
       var dataTable = new google.visualization.DataTable();
       dataTable.addColumn({ type: 'date', id: 'Date' });
       dataTable.addColumn({ type: 'number', id: 'Won/Loss' });
       dataTable.addRows([
          [ new Date(2012, 3, 13), 37032 ],
          [ new Date(2012, 3, 14), 38024 ],
          [ new Date(2012, 3, 15), 38024 ],
          [ new Date(2012, 3, 16), 38108 ],
          [ new Date(2012, 3, 17), 38229 ],
          // Many rows omitted for brevity.
          [ new Date(2013, 9, 4), 38177 ],
          [ new Date(2013, 9, 5), 38705 ],
          [ new Date(2013, 9, 12), 38210 ],
          [ new Date(2013, 9, 13), 38029 ],
          [ new Date(2013, 9, 19), 38823 ],
          [ new Date(2013, 9, 23), 38345 ],
          [ new Date(2013, 9, 24), 38436 ],
          [ new Date(2013, 9, 30), 38447 ]
        ]);

       var chart = new google.visualization.Calendar(document.getElementById('calendar_basic'));

       var options = {
         title: "Red Sox Attendance",
         height: 350,
       };

       chart.draw(dataTable, options);
   }
    </script>
  </head>
  <body>
    <div id="calendar_basic" style="width: 1000px; height: 350px;"></div>
  </body>
</html>

Tage

Jedes Quadrat in einem Kalenderdiagramm repräsentiert einen Tag. Derzeit kann die Farbe der Datenzellen nicht angepasst werden. Dies wird jedoch in der nächsten Version von Google Charts geändert.

Wenn die Datenwerte alle positiv sind, reichen die Farben von Weiß bis Blau, wobei das tiefste Blau die höchsten Werte angibt. Wenn negative Datenwerte vorhanden sind, werden sie wie unten gezeigt orange dargestellt.

Der Code für diesen Kalender ähnelt dem ersten Kalender, außer dass die Zeilen wie folgt aussehen:

          [ new Date(2013, 9, 4), 10 ],
          [ new Date(2013, 9, 5), 3 ],
          [ new Date(2013, 9, 7), -1 ],
          [ new Date(2013, 9, 8), 2 ],
          [ new Date(2013, 9, 12), -1 ],
          [ new Date(2013, 9, 13), 1 ],
          [ new Date(2013, 9, 15), 1 ],
          [ new Date(2013, 9, 16), -4 ],

Mit der Option calendar.cellSize können Sie die Größe der Tage („Zellen“) ändern:

Hier haben wir calendar.cellSize in 10 geändert, wodurch die Tage und damit das Diagramm als Ganzes verkleinert wurden.

       var options = {
         title: 'Red Sox Attendance',
         calendar: { cellSize: 10 },
       };

Tage ohne Datenwerte können mit der Option noDataPattern angepasst werden:

Hier legen wir für color ein hellblaues und für backgroundColor einen etwas dunkleren Farbton fest:

       var options = {
         title: "Red Sox Attendance",
         height: 350,
         noDataPattern: {
           backgroundColor: '#76a7fa',
           color: '#a0c3ff'
         }
       };

Mit calendar.cellColor können Sie die Farbe, Rahmenbreite und Deckkraft der Zellenrahmen festlegen:

Achten Sie darauf, eine Strichfarbe auszuwählen, die sich von monthOutlineColor unterscheidet, oder eine geringe Deckkraft. Für das Diagramm oben sind folgende Optionen verfügbar:

  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      cellColor: {
        stroke: '#76a7fa',
        strokeOpacity: 0.5,
        strokeWidth: 1,
      }
    }
  };

Wenn Sie den Fokus auf einen Tag im obigen Diagramm legen, wird der Rahmen rot hervorgehoben. Dieses Verhalten können Sie mit den Optionen für calendar.focusedCellColor steuern:

  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      focusedCellColor: {
        stroke: '#d3362d',
        strokeOpacity: 1,
        strokeWidth: 1,
      }
    }
  };

Wochen

Standardmäßig werden die Wochentage mit den ersten Buchstaben von Sonntag bis Samstag beschriftet. Sie können die Reihenfolge der Tage nicht ändern, aber mit der Option calendar.daysOfWeek ändern, welche Buchstaben verwendet werden. Außerdem können Sie den Abstand zwischen den Wochentagen und dem Diagramm mit calendar.dayOfWeekRightSpace steuern und den Textstil mit calendar.dayOfWeekLabel anpassen:

Hier ändern wir die Schriftart der Wochenlabels, setzen einen Abstand von 10 Pixeln zwischen den Labels und den Diagrammdaten und beginnen die Woche am Montag.

  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      dayOfWeekLabel: {
        fontName: 'Times-Roman',
        fontSize: 12,
        color: '#1a8763',
        bold: true,
        italic: true,
      },
      dayOfWeekRightSpace: 10,
      daysOfWeek: 'DLMMJVS',
    }
  };

Monate

Monate werden standardmäßig durch dunkelgraue Linien gekennzeichnet. Mit der Option calendar.monthOutlineColor können Sie den Rahmen festlegen, mit calendar.monthLabel die Schriftart des Labels und mit calendar.underMonthSpace den Abstand des Labels anpassen:

Wir legen die Schriftart des Labels auf tiefrotes 12pt Times-Roman Fett-kursiver Text fest, legen für die Umrisse dieselbe Farbe fest und legen einen Abstand von 16 Pixeln fest. Für die nicht verwendeten Monatsumrisse wird eine schimmernde Farbe desselben Farbtons verwendet.

  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      monthLabel: {
        fontName: 'Times-Roman',
        fontSize: 12,
        color: '#981b48',
        bold: true,
        italic: true
      },
      monthOutlineColor: {
        stroke: '#981b48',
        strokeOpacity: 0.8,
        strokeWidth: 2
      },
      unusedMonthOutlineColor: {
        stroke: '#bc5679',
        strokeOpacity: 0.8,
        strokeWidth: 1
      },
      underMonthSpace: 16,
    }
  };

Jahre

Die Jahre in Kalenderdiagrammen befinden sich immer am linken Rand des Diagramms und können mit calendar.yearLabel und calendar.underYearSpace angepasst werden:

Wir legen die Jahresschriftart auf eine dunkelgrüne 32pt Times-Roman, Fett-kursive Abstufung fest und fügen zwischen den Jahresbeschriftungen und dem unteren Rand des Diagramms zehn Pixel hinzu:

  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      underYearSpace: 10, // Bottom padding for the year labels.
      yearLabel: {
        fontName: 'Times-Roman',
        fontSize: 32,
        color: '#1A8763',
        bold: true,
        italic: true
      }
    }
  };

Wird geladen

Der Paketname google.charts.load lautet "calendar":

  google.charts.load("current", {packages: ["calendar"]});

Der Klassenname der Visualisierung lautet google.visualization.Calendar:

  var visualization = new google.visualization.Calendar(container);

Datenformat

Zeilen:Jede Zeile in der Tabelle steht für ein Datum.

Columns:

  Spalte 0 Spalte 1 ... Spalte N (optional)
Zweck: Daten Werte ... Optionale Rollen
Datentyp: date, datetime oder timeofday number ...
Rolle: Domain Daten ...
Optionale Spaltenrollen:

...

 

Konfigurationsoptionen

Name
calendar.cellColor

Mit der Option calendar.cellColor können Sie den Rahmen der Felder für Kalendertage anpassen:

var options = {
  calendar: {
    cellColor: {
      stroke: 'red',      // Color the border of the squares.
      strokeOpacity: 0.5, // Make the borders half transparent.
      strokeWidth: 2      // ...and two pixels thick.
    }
  }
};
      
Typ:Objekt
Standard: { stroke: '#fff', strokeOpacity: 1, strokeWidth: 1 }
calendar.cellSize

Die Größe der Kalendertagesquadrate:

var options = { calendar: { cellSize: 10 } };
      
Typ: Ganzzahl
Standard: 16
calendar.dayOfWeekLabel

Steuert den Schriftstil der Wochenlabels oben im Diagramm:

var options = {
  calendar: {
    dayOfWeekLabel: {
      fontName: 'Times-Roman',
      fontSize: 12,
      color: 'black',
      bold: false,
      italic: false
    }
  }
};
      
Typ:Objekt
Standard: { fontName: 'sans-serif', color: '#888', bold: false, italic: false }
calendar.dayOfWeekRightSpace

Der Abstand zwischen dem rechten Rand der Wochenlabels und dem linken Rand der Tagesquadrate im Diagramm.

Typ: Ganzzahl
Standard: 4
calendar.daysOfWeek

Die aus einzelnen Buchstaben bestehenden Labels, die für Sonntag bis Samstag verwendet werden sollen.

Typ: String
Standard: 'SMTWTFS'
calendar.focusedCellColor

Wenn der Nutzer den Fokus (z. B. durch Bewegen des Mauszeigers) auf ein Quadrat für den Tag legt, wird dieses in Kalenderdiagrammen hervorgehoben.

var options = {
  calendar:
    focusedCellColor: {
      stroke: 'red',
      strokeOpacity: 0.8,
      strokeWidth: 3
    }
  }
};
      
Typ:Objekt
Standard: { stroke: '#000', strokeOpacity: 1, strokeWidth: 2 }
calendar.monthLabel

Stil der Monatslabels, z.B.:

      var options = {
        calendar: {
          monthLabel: {
            fontName: 'Times-Roman',
            fontSize: 16,
            color: 'green',
            bold: true,
            italic: false
          }
        }
      };
      
Typ:Objekt
Standard: { fontName: 'sans-serif', color: '#888', bold: false, italic: false }
calendar.monthOutlineColor

Monate mit Datenwerten werden durch einen Rahmen in diesem Stil von anderen abgegrenzt.

var options = {
  calendar: {
    monthOutlineColor: {
      stroke: 'blue',
      strokeOpacity: 0.8,
      strokeWidth: 2
    }
  }
};
      
(Siehe auch calendar.unusedMonthOutlineColor.)
Typ:Objekt
Standard: { stroke: '#000', strokeOpacity: 1, strokeWidth: 1 }
calendar.underMonthSpace

Die Anzahl der Pixel zwischen dem unteren Rand der Monatslabels und dem oberen Rand der Tagesquadrate:

var options = { calendar: { underMonthSpace: 12 } };
Typ: Ganzzahl
Standard: 6
calendar.underYearSpace

Die Anzahl der Pixel zwischen der Jahresbezeichnung ganz unten und dem unteren Rand des Diagramms:

var options = { calendar: { underYearSpace: 2 } };
Typ: Ganzzahl
Standard: 0
calendar.unusedMonthOutlineColor

Monate ohne Datenwerte werden durch einen Rahmen in diesem Stil von anderen abgegrenzt.

var options = {
  calendar: {
    unusedMonthOutlineColor: {
      stroke: 'yellow',
      strokeOpacity: 0.8,
      strokeWidth: 2
    }
  }
};
      
(Siehe auch calendar.monthOutlineColor.)
Typ:Objekt
Standard: { stroke: '#c9c9c9', strokeOpacity: 1, strokeWidth: 1 }
colorAxis

Ein Objekt, das eine Zuordnung zwischen Farbspaltenwerten und Farben oder eine Farbverlaufsskala angibt. Zum Angeben der Eigenschaften dieses Objekts können Sie die Objektliteral-Notation verwenden, wie hier gezeigt:

 {minValue: 0,  colors: ['#FF0000', '#00FF00']}
Typ:Objekt
Standard:null
colorAxis.colors

Farben, die Werten in der Visualisierung zugewiesen werden sollen. Ein Array mit Strings, wobei jedes Element ein HTML-Farbstring ist. Beispiel: colorAxis: {colors:['red','#004411']}. Sie müssen mindestens zwei Werte angeben. Der Farbverlauf enthält alle Ihre Werte sowie berechnete Zwischenwerte, wobei die erste Farbe den kleinsten Wert und die letzte Farbe den höchsten Wert hat.

Typ:Array von Farbstrings
Standard:null
colorAxis.maxValue

Falls vorhanden, gibt es einen Maximalwert für Diagrammfarbdaten an. Farbdatenwerte ab diesem Wert werden als letzte Farbe im Bereich colorAxis.colors gerendert.

Typ:Zahl
Standard:Maximalwert der Farbspalte in Diagrammdaten
colorAxis.minValue

Falls vorhanden, gibt es einen Mindestwert für Diagrammfarbdaten an. Farbdatenwerte ab diesem Wert werden als erste Farbe im Bereich colorAxis.colors gerendert.

Typ:Zahl
Standard:Mindestwert der Farbspalte in Diagrammdaten
colorAxis.values

Falls vorhanden, wird damit gesteuert, wie Werte mit Farben verknüpft werden. Jeder Wert ist der entsprechenden Farbe im Array colorAxis.colors zugeordnet. Diese Werte gelten für die Farbdaten des Diagramms. Die Färbung erfolgt nach einem Farbverlauf der hier angegebenen Werte. Wenn Sie keinen Wert für diese Option angeben, entspricht dies der Angabe von [minValue, maxValue].

Typ:Array von Zahlen
Standard:null
forceIFrame

Zeichnet das Diagramm in einem Inline-Frame. (Beachten Sie, dass diese Option in IE8 ignoriert wird; alle IE8-Diagramme werden in iFrames gezeichnet.)

Typ: Boolesch
Standard: false
height

Höhe des Diagramms in Pixeln

Typ:Zahl
Standard:Höhe des beinhaltenden Elements
noDataPattern

In Kalenderdiagrammen wird ein gestreiftes diagonales Muster verwendet, um anzuzeigen, dass für einen bestimmten Tag keine Daten vorhanden sind. Mit den Optionen noDataPattern.backgroundColor und noDataPattern.color können Sie die Standardeinstellungen für Graustufen überschreiben. Beispiel:

noDataPattern: {
  backgroundColor: '#76a7fa',
  color: '#a0c3ff'
}
      
Typ:Objekt
Standard:null
tooltip.isHtml

Legen Sie false fest, um im SVG- und nicht im HTML-Format gerenderte Kurzinfos zu verwenden. Weitere Informationen finden Sie unter Inhalt der Kurzinfo anpassen .

Hinweis: Die Anpassung des HTML-Kurzinfoinhalts über die Spalte „Kurzinfo-Spaltendaten“ wird von den Visualisierungen Kreisdiagramm und Blasendiagramm nicht unterstützt.

Typ: Boolesch
Standardeinstellung:true
width

Breite des Diagramms in Pixeln.

Typ:Zahl
Standard:Breite des beinhaltenden Elements

Methoden

Methode
draw(data, options)

Zeichnet das Diagramm. Das Diagramm akzeptiert erst dann weitere Methodenaufrufe, nachdem das Ereignis ready ausgelöst wurde. Extended description.

Return Type: Kein
getBoundingBox(id)

Gibt ein Objekt zurück, das den linken und oberen Rand sowie die Breite und Höhe des Diagrammelements id enthält. Das Format für id ist noch nicht dokumentiert. Dies sind die Rückgabewerte von Event-Handlern. Hier einige Beispiele:

var cli = chart.getChartLayoutInterface();

Höhe des Diagrammbereichs
cli.getBoundingBox('chartarea').height
Breite des dritten Balkens in der ersten Reihe eines Balken- oder Säulendiagramms
cli.getBoundingBox('bar#0#2').width
Begrenzungsrahmen des fünften Keils eines Kreisdiagramms
cli.getBoundingBox('slice#4')
Begrenzungsrahmen der Diagrammdaten eines vertikalen Diagramms (z.B. Säulendiagramm):
cli.getBoundingBox('vAxis#0#gridline')
Begrenzungsrahmen der Diagrammdaten eines horizontalen Diagramms (z.B. Balken):
cli.getBoundingBox('hAxis#0#gridline')

Die Werte beziehen sich auf den Container des Diagramms. Rufen Sie dies nach dem Zeichnen des Diagramms auf.

Rückgabetyp: Objekt
getSelection()

Gibt ein Array der ausgewählten Diagrammentitäten zurück. Auswählbare Elemente sind Balken, Legendeneinträge und Kategorien. Ein Balken entspricht einer Zelle in der Datentabelle, ein Legendeneintrag für eine Spalte (Zeilenindex ist null) und eine Kategorie für eine Zeile (Spaltenindex ist null). Für dieses Diagramm kann jeweils nur eine Entität ausgewählt werden. Extended description .

Rückgabetyp:Array von Auswahlelementen
setSelection()

Wählt die angegebenen Diagrammentitäten aus. Verwirft die vorherige Auswahl. Auswählbare Elemente sind Balken, Legendeneinträge und Kategorien. Ein Balken entspricht einer Zelle in der Datentabelle, ein Legendeneintrag für eine Spalte (Zeilenindex ist null) und eine Kategorie für eine Zeile (Spaltenindex ist null). Für dieses Diagramm kann jeweils nur eine Entität ausgewählt werden. Extended description .

Return Type: Kein
clearChart()

Löscht das Diagramm und gibt alle zugewiesenen Ressourcen frei.

Return Type: Kein

Ereignisse

Name
error

Wird ausgelöst, wenn beim Versuch, das Diagramm zu rendern, ein Fehler auftritt.

Properties (Eigenschaften): id, message, message
onmouseover

Wird ausgelöst, wenn der Nutzer den Mauszeiger auf eine visuelle Entität bewegt. Gibt den Zeilenindex und den Datumswert der Entität zurück. Wenn für die Entität kein Datentabellenelement vorhanden ist, wird für den Zeilenindex undefined zurückgegeben.

Eigenschaften: Zeile, Datum
onmouseout

Wird ausgelöst, wenn der Nutzer den Mauszeiger von einer visuellen Entität entfernt Gibt den Zeilenindex und den Datumswert der Entität zurück. Wenn für die Entität kein Datentabellenelement vorhanden ist, wird für den Zeilenindex undefined zurückgegeben.

Zeile Properties, Datum
ready

Das Diagramm ist bereit für externe Methodenaufrufe. Wenn Sie mit dem Diagramm interagieren und Methoden aufrufen möchten, nachdem Sie es gezeichnet haben, sollten Sie einen Listener für dieses Ereignis einrichten, bevor Sie die Methode draw aufrufen. Der Aufruf muss erst erfolgen, nachdem das Ereignis ausgelöst wurde.

Properties:keine
select

Wird ausgelöst, wenn der Nutzer auf eine visuelle Entität klickt. Wenn Sie wissen möchten, was ausgewählt wurde, rufen Sie getSelection() auf.

Properties:keine

Datenrichtlinie

Sämtlicher Code und alle Daten werden im Browser verarbeitet und gerendert. Es werden keine Daten an einen Server gesendet.