2013-06-10 8 views
6

Ho qualche tabella/grafico. E aggiungo serie per loro. Ogni serie è identificata da un colore.Prendi il prossimo colore per un grafico/tabella?

Sto cercando come scegliere il colore migliore per una serie che aggiungo alla mia serie.

L'obiettivo è ottenere il colore migliore successivo, in base ai colori già utilizzati. Dal momento che posso aggiungere/rimuovere serie, non posso semplicemente avere una matrice di colori e prendere il prossimo nella lista.

Ho sentito che c'era un po 'di linee guida per la SM che (solo pensa che questa equivalente per excel)

Qualche idea/link/metodo per fare questo?

EDIT: Trovato this che forniscono interessting dettagli su colore contrasto

EDIT2: ho cercato di utilizzare un "ruota di tinta": Divido solo la ruota per il numero di colore che ho bisogno e prendo il colore all'inizio della posizione. Ho anche incluso un modo per mettere un po 'di offset se vogliamo iniziare con un colore diverso.

Funziona, ho colori diversi, ma ho l'impressione che possiamo fare di meglio. Per esempio. Con un offset di 210 °, 6 colori, ho quei colori: enter image description here Penso che sia solo un'illusione ottica, ma i due ultimi colori sembrano essere più vicini di altri. Il problema è che ho a che fare con l'occhio dell'utente.

L'intera "tonalità" assomiglia a questa enter image description here Con l'occhio, possiamo vedere che c'è un colore che sembra più diverso dagli altri (come il ciano). Per me il verde sembra essere più grande del giallo, ...

Sembra che esista una nozione di colori di perceptually linear colors, sai se esiste un algoritmo che mi consente di ottenere un array di colori percettivamente lineare? Poi sarà facile prendere i colori che ho bisogno

+0

Ho avuto un certo successo usando [HSV] (http://en.wikipedia.org/wiki/HSL_and_HSV) coordinate di colore per tale calcolo. È possibile, più o meno, correggere i valori S e V e calcolare semplicemente il valore H per trovare un colore adatto. – SWeko

+0

Grazie per la vostra risposta, è stato il mio primo tentativo, controllo il numero di immagini di cui ho bisogno, divido 360 per il numero e poi ottengo il colore in questa posizione. Ma ho l'impressione che possiamo fare di meglio. Sto aggiornando la risposta – J4N

+1

Beh, per numeri adeguatamente piccoli, fino a 10-ish, immagino, si può semplicemente impostare il colore manualmente (1 serie - blu, 2 serie - blu e rosso, 3, blu, rosso, giallo , ecc ...) e utilizzare la ruota dei colori sopra quel numero. – SWeko

risposta

0

Dai un'occhiata alla How to automatically generate N "distinct" colors? ma ...

Questo è quello che ho fatto quando di fronte a un problema simile.

Ho creato come tabella di 32 colori ben distribuiti e distinti. L'ho fatto una volta. Quando devo presentare più di 32, ripeto semplicemente i colori. Ho deciso che 32 serie distinte erano più che sufficienti per il mio set di dati (non mi risulta che più di 32 serie siano state effettivamente utilizzate in uno scenario reale).

Una variante di questo è di cambiare leggermente il colore quando si supera la dimensione della tabella di riferimento, utilizzando una variazione grezza di aggiunta di 11111 ad esso.

Ho trovato questo è un approccio molto semplice con poco spazio per errori.

La maggior parte degli algoritmi (tutti? si aspetta che la serie X sia nera e la serie Y sia gialla ecc., anche se aggiungono una nuova serie.

0

Ho infine terminato misurando la distanza dei colori. E accetta questo solo se la distanza è maggiore di un grilletto.

Per fare ciò, si esegue l'iterazione sul mio HsvColor, quindi lo converto in Rgb -> XYZ -> Lab (CIE L * a * b) che è una scala di colori percettivamente lineare. Ho basato il mio codice su questo: http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CMC.html

Problemi correlati