23.10.2011

aktualisierte Version für CorePlot 0.9, Xcode 4

CorePlot: Liniendiagramme und Symbole (Symbols)

In dem Tutorial: CorePlot Liniendiagramm wurde erklärt, wie ein einfaches Liniendiagramm mit CorePlot erstellt wird. Der folgende Text beschreibt, wie das Liniendiagramm den eigenen Bedürfnissen angepaßt werden kann. Es wird erklärt, wie Markierungen (Symbole) eingefügt werden und wie deren Aussehen beeinflußt werden kann. Außerdem wird beschrieben, wie die Umrandung der Symbole verändert werden kann.

Im Folgenden wird die Methode awakeFromNib, des oben angesprochenen Tutorials, erweitert. Als erstes Beipiel sollen alle Punkte des Liniendiagramms mit grünen Sternen markiert werden. Dazu wird folgender Quellcode ergänzt:

CPTPlotSymbol *plotSymbol = [CPTPlotSymbol starPlotSymbol];
plotSymbol.fill = [CPTFill fillWithColor:[CPTColor greenColor]];
plotSymbol.size = CGSizeMake(20.0, 20.0);
linePlot.plotSymbol = plotSymbol;

Als erstes wird als Markierungssymbol ein Stern festgelegt, der die Füllfarbe grün hat und eine Größe 20x20 Pixel. Das plotSymbol wird als letztes dem Liniendiagramm linePlot zugewiesen. Nach dem Kompilieren und Starten sollte das folgende Liniendigramm zu sehen sein:

Die Tabelle listet die verfügbaren Symbole, die direkt von CorePlot zur Verfügung gestellt werden, auf. Auf der rechten Seite ist die Programmzeile zu sehen, die in dem Beispiel oben ausgetauscht werden muß, damit das Bild auf der rechten Seite zu sehen ist. Durch einen Klick auf den Screenshot erhält man eine größere Auflösung des Bildes.

CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol crossPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol starPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol diamondPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol pentagonPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol hexagonPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol dashPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol snowPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol plusPlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol rectanglePlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol ellipsePlotSymbol];
CPTPlotSymbol *plotSymbol =
   [CPTPlotSymbol trianglePlotSymbol];

Werden die Screenshots oben genauer betrachtet, dann fällt auf, daß alle Symbole von einer schwarzen Linie umrandet sind. Dies ist die Standardfarbe (default). Allerdings ist es möglich diese Farbe zu ändern. Sollen die grünen Sterne beispielsweise von einer roten Linie umrandet werden, dann kann dies durch das Hinzufügen des folgenden Programmcodes erreicht werden.

CPTMutableLineStyle *symbolLineStyle = [[plotSymbol.lineStyle mutableCopy] autorelease];
symbolLineStyle.lineColor = [CPTColor redColor];
plotSymbol.lineStyle = symbolLineStyle;

Das Ergebnis ist in folgender Abbildung zu sehen: