จานสีที่มีคุณภาพ - ปลอดภัยในการถ่ายเอกสาร (พร้อมระดับสีเทา)


12

ฉันกำลังมองหาจานสีคุณภาพ 5 ระดับซึ่งสามารถพิมพ์ในเครื่องพิมพ์ขาวดำ

ภาพด้านล่างแสดงแผนที่เป็นสี (ด้านบน: เชิงคุณภาพด้านล่าง: การเบี่ยงเบน) และลักษณะแต่ละแบบในโทนสีเทา (ด้านขวามือ) ทั้งสองจานสี ( Set3และSpectral) เป็นColorBrewer

  1. [UL] เชิงคุณภาพ Set3
  2. [UR] เชิงคุณภาพSet3 ในระดับสีเทา
  3. [LL] การเปลี่ยนเส้นทาง Spectral
  4. [LR] การSpectralดำน้ำในระดับสีเทา

ป้อนคำอธิบายรูปภาพที่นี่

โดยเฉพาะอย่างยิ่งฉันต้องแยกแยะกลุ่มในภาพด้านบนขวาในขณะที่ด้านล่าง (สเปคตรัม) ดีกว่ามากถ้าไม่สมบูรณ์ (ฉันไม่สามารถพูดได้ว่าเป็นสีฟ้าหรือสีแดง) และตาม ColorBrewer ชุดรูปแบบสีสเปกตรัม (อันที่ฉันใช้ที่นี่) เป็นphotocopy safeจานสี 5 ระดับเท่านั้น

การลดคลาส (เป็น 3 หรือ 4) อาจเป็นตัวเลือก แต่ฉันเกรงว่ามันไม่ได้มีจุดประสงค์ในแผนที่นี้

อาจไม่เกี่ยวข้องกับโปรแกรม GIS แต่โดยทั่วไปฉันใช้ QGIS ซึ่งมี ColorBrewer, cpt-city และ palette และ color ramps อื่น ๆ


@obrl_soilแนะนำว่านี่คือชุดสีViridis

ป้อนคำอธิบายรูปภาพที่นี่


@underdarkแนะนำว่านี่เป็น4 colors + whiteวิธีการสองแบบ

ป้อนคำอธิบายรูปภาพที่นี่

ซ้าย: สีส้ม - แดง + ขาว (เรียงตามลำดับ), ขวา: ม่วง - ส้ม + ขาว (เบี่ยงเบน)


คุณพบคำตอบที่ดีอยู่แล้ว แต่ฉันอยากจะแนะนำคุณกับcolorbrewer2.orgซึ่งช่วยให้คุณสร้างโครงร่างสีที่สวยงาม
LaughU

@ LaughU จริงๆแล้วมันเป็นเว็บไซต์ที่ฉันได้อ้างถึง ... ขออภัยถ้ามันไม่ได้กล่าวถึงอย่างชัดเจน แต่ขอบคุณมันเป็นทรัพยากรที่ดีจริงๆฉันเห็นด้วย
Kazuhito

คำตอบ:


8

คุณเคยดูตระกูล viridis ไหม? วิธีที่ง่ายที่สุดในการเพิ่มพวกเขาใน QGIS คือผ่านลิงก์นี้ - http://rocksandwater.net/blog/2016/07/qgis_perceptually_uniform_colorramps/


1
ขอบคุณมาก @obrl_soil! มันเยี่ยมมาก ฉันคิดว่าฉันเคยเห็นชื่อviridisในชุมชน R มาก่อน แต่บางทีฉันอาจไม่ได้รับความสนใจเพียงพอ (เพิ่มผล viridis ในโพสต์ของฉันเป็นแก้ไข)
Kazuhito

10

ในฐานะที่เป็น ColorBrewer แนะนำเพียงรูปแบบสีสเปกตรัม 5 ระดับคือ "ปลอดภัย" สำหรับการใช้งานเครื่องถ่ายเอกสาร (เช่นระดับสีเทา) ทางออกที่ง่ายที่สุดคือการใช้วิธีอื่นในการแยกความแตกต่างของคลาสเช่นการฟักไข่

ใน QGIS มันเป็นเรื่องง่ายที่จะเลือก 5 ช่องที่แตกต่างกันในการจัดประเภทโดยการเปลี่ยนแปรงเติม

ป้อนคำอธิบายรูปภาพที่นี่

หรือโดยใช้รูปแบบจุดเติมด้วยระยะทางที่แตกต่างกัน:ป้อนคำอธิบายรูปภาพที่นี่


1
ขอบคุณ @iant แต่ฉันควรจะใช้มัน (ฉันหมายถึง ColorBrewer) แสดงให้เห็นว่าไม่มีทางที่จะสร้างรูปแบบสี 5 ระดับนอกเหนือจากชุดพิเศษนั้นได้หรือไม่ ถ้าเป็นเช่นนั้นฉันก็ไม่มีปัญหากับการฟักไข่
Kazuhito

7

Colorbrewer 2.0นั้นบอกเราว่าไม่มีชุดสี "photocopy safe" ที่มี 5 สีดังนั้นนี่คือโซลูชัน 4 สี:

ป้อนคำอธิบายรูปภาพที่นี่

แน่นอนว่ามันไม่ได้นับว่า "สีขาว" เป็นสีที่มีศักยภาพอันดับ 5 ดังนั้นโซลูชันนี้อาจยังคงเพียงพอสำหรับแอปพลิเคชันของคุณ


1
ดี การเพิ่มสีขาวเป็นความคิดที่ยอดเยี่ยมที่ไม่เคยนึกมาก่อน (ฉันเกือบพร้อมที่จะยอมแพ้ ColorBrewer) ขอบคุณ!
Kazuhito

4

ผมมีปัญหาเดียวกัน. ฉันต้องการ 8 คลาส ฉันสร้างวิธีการแก้ปัญหาที่ช่วยให้คุณทำหมวดหมู่อย่างน้อยที่สุดให้เป็นไปได้ มันเพิ่มระยะห่างระหว่างค่าความอิ่มตัวของแต่ละสีที่สร้างโดย colorbrewer โดยค่าเริ่มต้น จากนี้คุณจะได้รับหมวดหมู่ที่แตกต่างที่สุดในการพิมพ์ b / w แปลงสองแปลงเพียงเล็กน้อยเท่านั้นที่คุณสามารถดูด้านล่าง แต่ใน bw มันสามารถสร้างความแตกต่าง

จำเป็นต้องรู้ R เพื่อใช้สคริปต์:

library("ggplot2")
library("colorspace")
library("RColorBrewer")


# display all color scales with n=8
display.brewer.all(n = 8,type = "div")
# choose a brewer
brewer.pal(8,"Spectral")
# transform palette to HSV values
(palette.HSV<-as(hex2RGB(brewer.pal(8,"Spectral")), "HSV")) 

# plot
plot(1:8,1:8,pch=21,bg=hex(palette.HSV),col=hex(palette.HSV),cex=5)

# sort and get indices of HSV values
sort(palette.HSV@coords[,2],index.return=TRUE)

# calculate steps for distance
9/8 # 8 classes until 0.9 saturation

# change accordingly
palette.HSV@coords[1,2]<-0.7875 # swapped with second
palette.HSV@coords[2,2]<-0.675
palette.HSV@coords[3,2]<-0.5625
palette.HSV@coords[4,2]<-0.3375
palette.HSV@coords[5,2]<-0.225
palette.HSV@coords[6,2]<-0.1125
palette.HSV@coords[7,2]<-0.45
palette.HSV@coords[8,2]<-0.9

plot(1:8,1:8,pch=21,bg=hex(palette.HSV),col=hex(palette.HSV),cex=5)

# save your costum colorscale
my.scale<-hex(palette.HSV)

ค่าที่เปลี่ยนแปลง ค่าที่เปลี่ยนแปลง

ค่าเดิม ป้อนคำอธิบายรูปภาพที่นี่

แก้ไข: หากคุณต้องการเปลี่ยนความสว่าง (ดูการสนทนาด้านล่าง) ให้ใช้รหัสต่อไปนี้:

# change brightness accordingly (reverse order)
palette.HSV@coords[1,3]<- 0.225
palette.HSV@coords[2,3]<-0.4
palette.HSV@coords[3,3]<-0.5625
palette.HSV@coords[4,3]<-0.9
palette.HSV@coords[5,3]<-0.7875
palette.HSV@coords[6,3]<-0.675
palette.HSV@coords[7,3]<-0.3
palette.HSV@coords[8,3]<-0.1125

1
ขอบคุณ @joaoal! คุณคิดที่จะเพิ่มการแสดงสีเทาสำหรับแต่ละภาพหรือไม่? การทดลองใช้โค้ดอย่างรวดเร็วของฉันทำให้เกิดภาพที่เหมือนกันเกือบทั้งหมด (สำหรับดวงตาที่ไม่ได้รับการฝึกฝน) เมื่อพวกเขากลายเป็นโทนสีเทา 8 บิต
Kazuhito

1
@ Kazuhito ไม่แน่ใจว่าจะทำอย่างไรในอาร์ในการพิมพ์ bw โซลูชันของฉันนั้นดีกว่าค่าเริ่มต้นเล็กน้อยอย่างเห็นได้ชัด แต่อย่างที่ฉันเขียนข้างต้นมันยากที่จะสร้างความแตกต่างที่ดีจริงๆถ้าคุณใช้ 8 คลาส ในกรณีของคุณมี 5 คลาสมันอาจจะดีกว่า นอกจากการปรับปรุงทางลาดสีแล้วคุณยังสามารถเพิ่มสัญลักษณ์ในแผนที่ของคุณที่กึ่งกลางของแต่ละรูปหลายเหลี่ยมซึ่งแต่ละสัญลักษณ์ที่ไม่ซ้ำกันแสดงถึงประเภทที่แตกต่างกันหรือคุณสามารถใช้รูปแบบการเติมที่แตกต่างกันเช่นรูปแบบเส้น โซลูชันของฉันสำหรับข้อมูลแรสเตอร์ที่คุณไม่สามารถทำสิ่งนั้นได้
joaoal

2
+1 @joaoal ขอบคุณสำหรับข้อมูลเพิ่มเติมของคุณ แค่คิด แต่วิธีการเกี่ยวกับการเปลี่ยนpalette.HSV@coords[x,3]ที่สอดคล้องกับค่า (หรือความสว่าง) ใน colourspace HSV? (คุณได้ทำงานเกี่ยวกับความอิ่มตัว) การทดสอบอย่างรวดเร็วของฉันเกี่ยวกับการcoords[ ,3]สร้างความคมชัดมากขึ้น แต่ฉันไม่แน่ใจในสภาพแวดล้อมของคุณ
Kazuhito

2
@ Kazuhito ฉันลองใช้เป็นตัวอย่างและไม่ได้ผลลัพธ์ที่ดีกว่าฉันเปลี่ยนความสว่างเท่านั้น ในทางทฤษฎีแล้วความอิ่มตัวจะเชื่อมโยงโดยตรงกับความสีเทาโดยที่ 0 เป็นสีขาวและ 1 คือสีดำในการพิมพ์ bw / หรือสีเต็มเช่น "สีแดง" ในการพิมพ์สี ความสว่างยังมีผลต่อความเป็นสีเทาในการพิมพ์ แต่ช่วงของคุณมี จำกัด เนื่องจากจะเปลี่ยนสีระหว่างสีเต็มเช่น "สีแดง" และ "สีดำ" การรวมกันของทั้งสองอาจเป็นตัวเลือกและฉันเพิ่มรหัสข้างบนลงในบัญชีสำหรับสิ่งนั้น ฉันมีความประทับใจที่ปรับปรุงความแตกต่างของสีที่เบากว่าเท่านั้น แต่มันยิ่งทำให้สีเข้มขึ้น
joaoal

ขอบคุณที่รู้ ฉันยอมรับด้วยเช่นกันว่าเราไม่ควรที่จะยึดมั่นในคุณค่ามากเกินไป
Kazuhito
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.