Çizgi grafikleri için renk ve çizgi kalınlığı önerileri


31

Genel olarak haritalar, çokgenler ve genel olarak gölgeli bölgeler için renk dostu olmayan renk seçenekleri hakkında çok şey yazıldı (bkz. Örneğin http://colorbrewer2.org ). Çizgi renkleri ve çizgi grafikleri için değişen çizgi kalınlığı önerileri bulamadım. Hedefler:

  1. iç içe geçmiş olsalar bile çizgileri kolayca ayırt ederler
  2. çizgilerin en yaygın renk körlüğü formuna sahip bireyler tarafından ayırt edilmesi kolaydır
  3. (daha az önemli) çizgiler yazıcıya uygundur (yukarıdaki Color Brewer'a bakın)

Siyah ve gri ölçekli çizgiler bağlamında, ince siyah çizgiler ve daha kalın gri ölçek çizgileri olmasını çok etkili buldum. Farklı renkler, gri skala derecesi ve çizgi kalınlığı içeren özel önerilerden memnun kalacağım. Değişken çizgi türlerine (katı / noktalı / kesikli) düşkün değilim ama bu görüşün dışında konuşulabilir.

Tek bir grafikte en fazla 10 eğri için öneriler olması tercih edilir. Daha da iyisi Color Brewer'ın yaptığı gibi yapmak olacaktır: m çizgileri için önerilerin n> m olduğu n çizgileri için n önerileri alt kümesi olmaması ve m'nin 1 ile 10 arasında değişmesi.

Lütfen dikkat : Ayrıca, sorunun yalnızca çizgi renklendirme bölümünü ele alan rehberliği de takdir ediyorum.

Bazı uygulayıcılar, farklı sınıfları daha iyi ayırt etmek için her birkaç santimetre çizgiye sembol ekler. Sınıfları ayırt etmek için birden fazla özellik (örneğin, renk + sembol türü) gerektiren ve bazen farklı bilgileri belirtmek için semboller ayırmak isteyen pek fazla lehte değilim.

Başka bir rehberlik olmadığında, çizgiler için colorbrewer2.org'da çokgenler için önerilen aynı renkleri kullanmayı ve daha az parlak / yoğun renklerle çizilmiş çizgiler için çizgi genişliğini 2,5 ile çarpmayı öneriyorum. Bunu ayarlayan bir R fonksiyonu yaratıyorum. Renkli brewer renklerine ek olarak, ilk 2 rengi düz siyah (ince) ve gri skala (kalın) yapacağım, ancak biri ince katı siyah ve ince mavi olması gerektiğini savunabilirim.

R fonksiyonları http://biostat.mc.vanderbilt.edu/wiki/pub/Main/RConfiguration/Rprofile adresinde bulunabilir . Fonksiyonu tanımladıktan sonra colBrew, yazarak ayarların nasıl çalıştığını görebilirsiniz.

showcolBrew(number of line types)  # add grayscale=TRUE to use only grayscale

Grafik parametrelerinin yeni ayarlara getirilmesi latticeSetiçin bir fonksiyon da verilmiştir lattice. Algoritmalardaki iyileştirmeler memnuniyetle karşılanır.

Keşfetmek için : R dichromatpaketi: http://cran.r-project.org/web/packages/dichromat/


2
Sınırlı sayıda çizgi türünün çok faydalı olacağını düşünürdüm. Henüz bahsedilmemiş gibi görünen bir başka seçenek, bireysel ölçümler için nokta işaretleyicilerin kullanımıdır, örneğin, haçlar, sıfırlar, yıldızlar vb.
Robert Jones

1
Bana göre, eğriler birbirine geçtiğinde nokta işaretleri tam olarak etkili değildir. Fakat çok iyi çalıştıkları birkaç örnek gördüm.
Frank Harrell

Yanıtlar:


21

Burada kışkırtıcı olmaya çalışacağım ve bu tür kılavuzların yokluğunun ortaya çıkıp çıkmadığını merak ediyorum çünkü bu neredeyse çözülemez bir sorun. Oldukça farklı alanlardaki insanlar genellikle "spagetti arazileri" ve farklı serileri ayırt etmede ortaya koydukları sorunlar hakkında konuşma konusunda hemfikirdirler.

Somut olarak, birkaç bireysel zaman serisi için bir hat kütlesi topluca genel kalıpları ve bazen bu tür herhangi bir kalıptan farklı olan bireysel serisi aktarabilir.

Bununla birlikte soru, ilgilendiğiniz kimlikleri olduğunda tüm bireysel zaman serilerini ayırt etmekle ilgili.

2 veya 3 seri söylerseniz, ayırt edici seri genellikle çok zor değildir ve iki veya üç kırmızı, mavi veya siyah renkte düz çizgiler kullanma eğilimindeyim. Hastie ve arkadaşları tarafından kullanıldığı gibi turuncu ve mavi ile de oynadım (@ user31264 kullanıcısının yanıtına bakınız).

Çizgi desenine göre değişen (düz, çizgi, noktalı vb.) Sadece sınırlı bir değer buldum. Noktalı çizgiler fiziksel ve zihinsel olarak yıkanma eğilimindedir ve daha ince nokta ve çizgi kombinasyonları pratikte başarılı olamayacak kadar incedir (anlam, hafif).

10 seri olmadan çok önce sorunun ısırdığını söyleyebilirim. Çok farklı olmadıkça, 5 veya daha fazla seri ayırt etmek zor bir iş gibi olabilir. Yaygın psikoloji, insanların farklı serilerin farklı renkler ve veya sembolizmle mükemmel bir şekilde gösterildikleri ilkesini anlamaları, ancak tek tek çizgileri takip etmek ve kafalarındaki benzerlikleri ve farklılıkları hakkında bir hikaye tutmaya çalışmak gibi bir eğilimi olmadığı anlaşılıyor. . Bunun bir kısmı genellikle bir efsanenin (veya anahtarın) kullanımından kaynaklanmaktadır. Tartışmalı, ancak mümkün olan her yerde grafik üzerinde farklı serileri etiketlemeye çalışırdım. Buradaki sloganım "Efsaneyi kaybet ya da mümkünse anahtarı öldür".

Tüm farklı zaman serilerinin birkaç panelde tekrar tekrar gösterildiği, ancak her birinde farklı bir işaretin bulunduğu çoklu zaman serileri göstermeye farklı bir yaklaşım benimsemiştir. Bu, eski bir fikrin (a) küçük katları (Edward Tufte'nin dediği gibi) ve başka bir eski fikrin (b) bir dizi özel ilginin vurgulanmasının bir birleşimidir. Buna karşılık yeniden keşfedilen başka bir eski fikir olabilir, ancak şimdiye kadar sadece son referansları bulabilirim. Statalist bu konuda daha fazla .

Renkler açısından, vurgulanan her şeye fon oluşturan zaman serileri için grileri kullanma konusunda olumluyum. Bu, içinde yayınlanmaya değer çoğu dergiyle tutarlı görünüyor.

İşte bir deney. Veri Rothamsted 1852-1925 de Broadbalk'taki Alanlara 17 parsellerden tane verimi ve Andrews, DF ve Herzberg, AM (Eds) 1985'te gelen veriler: öğrenci ve araştırma işçi için birçok alanlardan problemlerin bir koleksiyonu . New York: Springer, Tablo 5.1 ve çeşitli yerlerden indirilebilir (örneğin, bağlantı açıklamasını buraya girin . (Detay: Buradaki veriler, her yıl için 4 satırlık bloklar halinde gelir; üçüncü ve dördüncü satırlar saman grafiği içindir, burada çizilmez). arsa tanımlayıcıları bu tabloda açık değildir.)

Bu tür veriler konusunda özel bir uzmanlığım yok; Sadece dizi uzunluğu veya panel sayısı açısından önemsiz şekilde küçültülemeyen (kolay) bir çok zaman serisi istedim. (Yüzlerce, binlerce paneliniz varsa, bu yaklaşım gerçekten pek yardımcı olamaz.) Hayal ettiğim şey, belki de bir konu uzmanıyla konuşan bir veri analistinin çeşitli ortakları tanımlayabilmesi ve Burada nadir görülen davranışlar ve bu sayede içgörü ve bilgi elde edilir.

görüntü tanımını buraya girin

Açıkçası, bu tarif diğer birçok çeşit tarla için kullanılabilir (örneğin, her bir alt kümenin sırasıyla vurgulanmasıyla saçılma grafikleri veya histogramlar); bazı ilginç ya da kullanışlı bir ölçü ya da kritere göre sipariş panelleri ile birlikte (örneğin, ortanca ya da yüzde 90 ya da SD); ve ham sonuçların yanı sıra model sonuçları için.


2
Alt kümeden çok etkilendim. Bazı örnek çıktı görüntülerini doğrudan yayınınıza ekleyebilir misiniz? Ben hatları değişir sayısı olarak ne kadar iyi çalıştığını merak ediyorum, ama bu kesinlikle ben ~ 10 hatları için gördüğüm en tatmin çözümüdür
Silverfish

@ Silverfish Teşvik için teşekkür ederiz. Şimdi bir deneme eklendi.
Nick Cox,

1
Nick: "Etiketi kaybettim" - uzaktaki efsaneleri en aza indirgeyerek - ve aynı anda bir eğriyi vurgulayarak, başkalarının da yaptığınız gibi kararmasına izin vererek [vurgulanan eğri için neredeyse katı siyahı kullanmak kadar etkili olabilir] . Bunun sunumlar için harika bir fikir olduğunu düşünüyorum, ancak alan kısıtlamaları nedeniyle bir makale yayınlamak için çok uygun değil.
Frank Harrell,

Belki etkileşimli grafikler yakında yayıncılıkta bir standart haline gelebilir ve grafiklerdeki çizgiler üzerinde gezebilir ve daha fazla bilgi edinebiliriz (tüm çizginin vurgulanması veya size daha fazla bilgi vermek için bir araç ipucu göstermesi vb.).
bdeonovic

1
@Frank Harrell Uzay grafikleri (1), eğer münferit grafik panelleri okunamayacak kadar küçük olursa, bu durumda tasarımın yararları şüphelidir; (2) Eğer dergiler veya kitap editörleri, normalden daha büyük bir rakam için daha fazla yer ayırmaya ikna edilemezse, uygun görüldüğü takdirde. (Belki aklınızda başka noktalarınız vardı.)
Nick Cox

14

2. ve 3. sorulara cevap verdiniz - renkli bira paletleri uygundur. Zor soru 1, ama Nick gibi korkarım yanlış bir umut üzerine kuruludur. Çizgilerin rengi, çizgileri kolayca ayırt edebilmeyi sağlayan şey değildir, süreklilik ve çizgilerin ne kadar eğri olduğuna dayanır. Dolayısıyla, çizginin renginin veya çizgi deseninin dışında, arsanın yorumlanmasını kolaylaştırmaya yardımcı olacak tasarım tabanlı seçenekler vardır.

Örneklerin sınırlı bir alan üzerinde çok sayıda farklı şekilli fonksiyona yaklaşma esnekliğini gösteren Frank'in şemalarından birini çalacağım.

#code adapted from http://biostat.mc.vanderbilt.edu/wiki/pub/Main/RmS/rms.pdf page 40
library(Hmisc)
x <- rcspline.eval(seq(0,1,.01), knots=seq(.05,.95,length=5), inclx=T)
xm <- x
xm[xm > .0106] <- NA
x <- seq(0,1,length=300)
nk <- 6
set.seed(15)
knots<-seq(.05,.95,length=nk)
xx<-rcspline.eval(x,knots=knots,inclx=T)
for(i in 1:(nk1)){
  xx[,i]<-(xx[,i]−min(xx[,i]))/
  (max(xx[,i])−min(xx[,i]))
for(i in 1:20){
  beta<-2runif(nk1)−1
  xbeta<-xx%∗%beta+2runif(1)−1
  xbeta<-(xbetamin(xbeta))/
         (max(xbeta)−min(xbeta))
  if (i==1){
  id <- i
  MyData <- data.frame(cbind(x,xbeta,id))
  }
  else {
          id <- i
          MyData <- rbind(MyData,cbind(x,xbeta,id))
       }
  }
}
MyData$id <- as.factor(MyData$id)

Şimdi bu, 20 çizgiden oluşan karışık bir karmaşa yaratıyor, görselleştirmesi zor.

library(ggplot2)
p1 <- ggplot(data = MyData, aes(x = x, y = V2, group = id)) + geom_line()
p1

Çizgiler Dağınıklığı

Sarılmış paneller kullanılarak, aynı boyutta, küçük katlarda aynı arsa. Paneller arasında karşılaştırma yapmak biraz daha zordur, ancak küçültülmüş alanda bile çizgilerin şeklini görselleştirmek çok daha kolaydır.

p2 <- p1 + facet_wrap(~id) + scale_x_continuous(breaks=c(0.2,0.5,0.8))
p2

Tüm 20 Paneller

Stephen Kosslyn'in kitaplarında yaptığı noktalardan biri arsanın ne kadar farklı çizgiyi komplike hale getirmediği değil, çizgilerin kaç tane farklı şekil alabileceğidir. 20 panel çok küçükse, aynı panele yerleştirmek için seti sık sık benzer yörüngelere indirgeyebilirsiniz. Panellerin içindeki çizgileri ayırt etmek hâlâ zordur, tanım gereği her birinin yanında olacak ve sık sık üst üste geleceklerdir, ancak panel karşılaştırmaları arasındaki karmaşıklığı biraz azaltır. Burada 20 çizgiyi keyfi olarak 4 ayrı gruba düşürdüm. Bunun, doğrudan etiketlemenin daha kolay olması, panellerin içinde daha fazla yer olması gibi avantajları vardır.

###############1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
newLevels <- c(1,1,2,2,2,2,2,1,1, 2, 3, 3, 3, 3, 2, 4, 1, 1, 2, 1)
MyData$idGroup <- factor(newLevels[MyData$id])
p3 <- ggplot(data = MyData, aes(x = x, y = V2, group = id)) + geom_line() + 
             facet_wrap(~idGroup)
p3

Azaltılmış Paneller

Hiçbir şeye odaklanmadığınız her şeye odaklanırsanız , duruma uygulanabilir genel bir ifade vardır . Yalnızca on satır olması durumunda, (10*9)/2=45karşılaştırılabilecek satır çiftleri vardır. Muhtemelen çoğu durumda 45 karşılaştırmanın hepsiyle ilgilenmiyoruz, ya belirli çizgileri birbiriyle karşılaştırmakla ya da bir çizgiyi diğerinin dağılımıyla karşılaştırmakla ilgileniyoruz. Nick'in cevabı ikincisini güzel gösteriyor. Arka plan çizgilerinin ince, açık renkli ve yarı saydam olarak çizilmesi ve ardından ön plan çizgisinin herhangi bir parlak renkte ve daha kalın olarak çizilmesi yeterli olacaktır. (Ayrıca cihaz için ön plan çizgisini diğer çizgilerin üzerine çizdiğinizden emin olun!)

Her bir çizginin arapsaçı içinde kolayca ayırt edilebildiği bir katman oluşturmak çok daha zordur. Haritacılıkta ön plana dayalı farklılaşmayı başarmanın bir yolu gölgelerin kullanımıdır ( iyi bir örnek için Dan Carr'ın bu makalesine bakın ). Bu, 10 satıra kadar ölçeklendirilmez, ancak 2 veya 3 satıra yardımcı olabilir. İşte Panel kullanarak Panel 1'deki yörüngelere örnek!

Excel Gölge

Açık olmayan çizgiler varsa, pürüzsüz olmayan yörüngeleriniz varsa yanıltıcı olabilir. Örneğin, bir X şeklinde iki yörüngeye veya bir sağ taraf yukarı ve baş aşağı şeklinde iki V'ye sahip olabilirsiniz. Onları, çizgileri izleyemeyeceğiniz aynı rengi çizerek, bu yüzden bazılarının önerdiği pürüzsüz çizgiler kullanarak paralel koordinat çizimlerinin çizilmesi veya noktaların işaretlenmesi / kapatılması ( Graham ve Kennedy, 2003 ; Dang ve diğerleri, 2010 ).

Dolayısıyla tasarım önerileri, amaç ve verinin niteliğine bağlı olarak değişebilir. Ancak, yörüngeler arasında iki değişkenli karşılaştırmalar yaparken ilgi çekici olduğunu düşünüyorum, benzer yörüngelerin kümelenmesinin ve küçük katların kullanılması, arazilerin çok çeşitli koşullarda yorumlanmasını çok daha kolaylaştırdığını düşünüyorum. Bu, genel olarak herhangi bir renk / çizgi çizgi kombinasyonunun karmaşık grafiklerde olacağından daha verimli olduğunu hissediyorum. Pek çok makalede, tek panelli paneller olması gerekenden çok daha büyüktür ve 4 panel halinde bölünmesi genellikle sayfa kısıtlamaları dahilinde fazla kayıp olmadan mümkündür.


3
Andy bu harika. Bu belirli spline eğrisi örneği için, birbirine daha yakın olan eğrilere farklı renkler atanması için 20 çizgiye 5 renk atamanın en az etkili, hatta daha etkili olacağını düşünüyorum. Her zaman işe yarayacak bir mesafe ölçütü yoktur, ancak genellikle belirli bir durum için çalışan bir ölçüt vardır. Söylediğin gibi, tüm bunlar pürüzsüzlük ve kıvrılmaya bağlı.
Frank Harrell,

5

Trevor Hastie ve ark. :

“İlk baskımız renk körü okuyuculara karşı dostça değildi; özellikle, özellikle sorunlu olan kırmızı / yeşil kontrastları tercih etme eğilimindeydik. Bu baskıdaki renk paletini büyük ölçüde değiştirdik, yukarıdakileri turuncu / mavi kontrastla değiştirdik. "

Grafiklerine bakmak isteyebilirsiniz.

Kesikli, noktalı vb. Çizgiler de kullanabilirsiniz.


4

Doğru veri görselleştirmesi konusunda "çizgi kalınlığına" çok az dikkat edildiğini gördüm. Belki de farklı çizgi kalınlıklarını ayırt etme yeteneği rengi ayırt etme yeteneği kadar değişken değildir.

Bazı kaynaklar:

  1. Hadley Wickham (2009), ggplot: Veri Analizi için Zarif Grafikler , Springer; destekleyici bir web sayfası var
  2. 8 veri görselleştirme konusunda önerilen kitap kaynakları: http://www.tableausoftware.com/about/blog/2013/7/list-books-about-data-visualisation-24182

Bazı kurslar:

  1. Thomas Lumley'de Grafik Anlatımı Biyoistatistik dersi için giriş hesaplama
  2. Ross Ihaka'nın hesaplamalı veri analizi ve grafikleri üzerine yüksek lisans kursu
  3. Ross Ihaka'nın bilgi görselleştirme üzerine lisans kursu
  4. Deborah Nolan'ın lisans dersi Verilerle Hesaplamadaki Kavramlar
  5. Hadley Wickham'ın Veri görselleştirme kursu

7
Harika bir kaynak listesi. Bununla birlikte, kısaca bahsettiğiniz soru ile ilgili (bunlardan bir veya daha fazlasından) bildiğiniz herhangi bir özel tavsiye var mı (çizgi kalınlığı, renkli çizgilerle, çok sayıda çizgi olabilir).
Glen_b -Reinstate Monica

Gönderinizi biçimlendirme özgürlüğünü aldım. Bence yapıyı görmeyi kolaylaştırıyor. Eğer beğenmediysen, özürlerimle geri al.
gung - Monica'yı yeniden yerleştirme

2

Soruna benzersiz bir çözüm olmadığı konusunda hemfikir olsam da, bu blogun tavsiyesini kullanıyorum:

http://blogs.nature.com/methagora/2013/07/data-visualization-points-of-view.html

Renkli yazılar, renk körlüğü ve Gri tonlu baskı konularını ele alıyor ve bu iki sorunu da çözen bir renk ölçeği örneği veriyor.

Aynı maddelerde ayrıca ısı grafikleri ve benzerleri için kullanılan sürekli renk ölçekleri de analiz edilmiştir. Bazı keskin geçişler nedeniyle gökkuşağının kullanılmaması önerilir (sarı bölge gibi, kırmızıdan çok daha küçük). Bunun yerine, diğer renk çiftleri arasında geçiş yapmak mümkündür.

Bu amaç için iyi bir renk kümesi mavi ve turuncudur (klasik!). Renk körü ve Gri filtreleri uygulayarak bir test yapabilir ve farkı hala fark edip edemediğinizi görebilirsiniz.

Çizgilerin kalınlığı için, bu noktaya değinmeden önce bahsettiğim blogun bazı konuları. Çizgiler, çok sayıda varsa, aynı kalınlığa sahip olmalıdır, "ince" dir. Kalın çizgileri yalnızca o nesneye dikkat çekmek istiyorsanız kullanın.


1
"Yalnızca kalın çizgiler kullan ..." ile tam olarak aynı fikirde değilim. Kalın açık gri ölçekli çizgiler birçok durumda çok etkili olabilir.
Frank Harrell,

1
Elbette olabilir. Demek istediğim, göz alıcı bir tarz kullanıyorsanız, bunun bir amaç için kullanılması gerektiğini kastettim.
saat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.