Frage

Ich mag gelegentliche Farben erzeugen, die in Kuchen charts.I attraktiv sein können, hat einen sehr schlechten Sinn, wenn es jemand Hilfe GUI.Can kommt in ein Stück Funktion zu schreiben, die 6 gute Farben erzeugt, die in einem Kreis gut aussehen ich habe jetzt Diagramm in einer zufälligen order.Right hardcoded.But ich weiß nicht, wie diese colors.Please mir helfen.

plot.setSectionPaint("iPhone 2G", new Color(200, 255, 255));
plot.setSectionPaint("iPhone 3G", new Color(200, 200, 255));
War es hilfreich?

Lösung

Mein Rat ist, nicht zufällige Farben aus zwei Gründen zu erzeugen. Zum einen werden Sie zusätzliche Schritte unternehmen müssen, um sicherzustellen, dass zwei oder mehr der Farben auch nicht einander sehr ähnlich. Zweitens Farbe ist emotional. Sie wollen nicht Ihre „dieses Diagramm sagt mir ist alles in Ordnung“ Farbe leuchtend rot zu sein. Rot ist eine Warnung Farbe; so sind orange und gelb.

Die allgemeine Beratung mit Farbe in Diagrammen ist ungesättigte Farben für allgemeine Daten und hellere Farben für Daten zu verwenden, um Sie aufmerksam machen wollen. Ich bin von Ihrem genauen Anwendungsfall nicht sicher, aber wenn Sie die Aufmerksamkeit auf besonders hohe iPhone 3GS Verkäufe zeichnen wollten mögen Sie vielleicht eine hellere Farbe verwenden, wenn es über einen bestimmten Schwellenwert überschreitet.

Als Mittel für die ersten Schritte ich die Farbkarten in VonC Antwort verwenden würde Hand-Pick 5 oder so Farben. Sie sollten nicht zu viele verschiedene Farben auf einem Diagramm angezeigt werden, da es zu viele Daten werden für die Zuschauer effektiv zu nehmen. Wenn Sie mehr als 7 oder so Datensätze in einem Diagramm haben, dann gibt es eine gute Chance, Sie werden nicht angezeigt die rechte Grafik! (Aber das ist eine andere Geschichte ...)

Stellen Sie sicher, es gibt keinen Konflikt zwischen den Farben, die Sie gewählt haben, und sie in einem Array sequenzieren. Jetzt können Sie eine einfache Liste verwenden, um jedes Mal, wenn Sie einen Diagramm Färbung.

public class ChartColorSource {
    public static final Color[] COLORS;
    static {
        COLORS = new Color[ 6 ];
        COLORS[0] = new Color( ... );
        COLORS[1] = new Color( ... );
        COLORS[2] = new Color( ... );
        COLORS[3] = new Color( ... );
        COLORS[4] = new Color( ... );
        COLORS[5] = new Color( ... );
    }

    /**
     * Assign a color from the standard ones to each category
     */
    public static void colorChart( Plot plot, String[] categories ) {
        if ( categories.length > COLORS.length ) {
            // More categories than colors. Do something!
            return;
        }

        // Use the standard colors as a list so we can shuffle it and get 
        // a different order each time.
        List<Color> myColors = Arrays.asList( COLORS );
        Collections.shuffle( myColors );

        for ( int i = 0; i < categories.length; i++ ) {
            plot.setSectionPaint( categories[i], myColors.get( i ) );
        }
    }
}

Andere Tipps

Anstatt erzeugen versuchen, zufällige Farben, würde ich vorschlagen, eine Reihe von Farben von einem Farbkarten .

Sie haben einige Tabelle Farben gemacht für Grafiken und Diagramme .

alt text http://www.sapdesignguild.org/goodies/diagram_guidelines /PALETTES/PALETTE1.GIF

Siehe auch die Empfehlungen für Charts und Grafiken


(Quelle: sapdesignguild.org )

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top