Bảng màu định tính - sao chụp an toàn (sẵn sàng thang độ xám)


12

Tôi đang tìm kiếm một bảng màu chất lượng 5 lớp có thể được in bằng máy in đen trắng.

Hình ảnh bên dưới hiển thị bản đồ màu (trên cùng: định tính, dưới cùng: phân kỳ) và cách mỗi bản đồ trong thang độ xám (phía bên tay phải). Cả hai bảng màu ( Set3Spectral) đều thuộc về ColorBrewer .

  1. [UL] Định tính Set3
  2. [UR] Định tính Set3 theo thang độ xám
  3. [LL] Phân kỳ Spectral
  4. [LR] Phân kỳ Spectralmàu xám

nhập mô tả hình ảnh ở đây

Tôi đặc biệt chịu đựng các nhóm phân biệt trong hình trên bên phải, trong khi phía dưới (quang phổ) tốt hơn nhiều, nếu không hoàn hảo (tôi không thể nói đó là màu xanh hoặc đỏ). Và theo ColorBrewer, bảng màu Spectral (cái tôi đã sử dụng ở đây) là photocopy safebảng màu duy nhất cho 5 lớp.

Giảm các lớp (xuống 3 hoặc 4) có thể là một lựa chọn, nhưng tôi e rằng nó không nhằm mục đích của bản đồ này.

Điều này có lẽ không liên quan đến phần mềm GIS, nhưng về cơ bản tôi sử dụng QGIS cung cấp ColorBrewer, cpt-city và các bảng màu và đường dốc màu khác.


@obrl_soil đề xuất đây là bộ màu Viridis

nhập mô tả hình ảnh ở đây


@underdark đề nghị đây là hai loại 4 colors + whitephương pháp.

nhập mô tả hình ảnh ở đây

TRÁI: Cam-Đỏ + trắng (tuần tự), ĐÚNG: Tím-Cam + trắng (phân kỳ)


Bạn đã tìm thấy một câu trả lời hay nhưng tôi muốn giới thiệu với bạn về colorbrewer2.org cho phép bạn tạo ra các phối màu đẹp
CườiU

@LaughU Thực tế đây là một trang web mà tôi đã đề cập đến ... xin lỗi nếu nó không được đề cập rõ ràng. Nhưng cảm ơn, nó thực sự là tài nguyên tốt, tôi đồng ý.
Kazuhito

Câu trả lời:


8

Bạn đã có một cái nhìn về gia đình viridis? Cách dễ nhất để thêm chúng vào QGIS là thông qua liên kết này - http://rocksandwater.net/blog/2016/07/qgis_perceptingly_uniform_colorramp/


1
Cảm ơn rất nhiều @obrl_soil! Điều đó thật tuyệt. Tôi nghĩ rằng tôi đã thấy tên viridis trong cộng đồng R một thời gian trước đây, nhưng có lẽ tôi đã không chú ý đầy đủ. (Đã thêm kết quả viridis vào bài viết của tôi dưới dạng Chỉnh sửa).
Kazuhito

10

Vì ColorBrewer chỉ đề xuất bảng màu phổ 5 lớp là "an toàn" cho việc sử dụng máy photocopy (tức là thang màu xám). Giải pháp đơn giản nhất là sử dụng một số cách khác để phân biệt các lớp như nở.

Trong QGIS, việc chọn 5 cửa sổ khác nhau trong phân loại bằng một thay đổi là một vấn đề đơn giản.

nhập mô tả hình ảnh ở đây

Hoặc bằng cách sử dụng một Điểm mẫu điền với các khoảng cách khác nhau:nhập mô tả hình ảnh ở đây


1
Cảm ơn @iant, nhưng tôi có nên lấy nó (ý tôi là, ColorBrewer) ngụ ý rằng không có cách nào tạo ra bảng màu 5 lớp ngoài bộ cụ thể đó? Nếu vậy tôi không có vấn đề gì với việc nở.
Kazuhito

7

Colorbrewer 2.0 về cơ bản cho chúng ta biết rằng không có bảng màu "an toàn photocopy" với 5 màu, vì vậy đây là giải pháp 4 màu:

nhập mô tả hình ảnh ở đây

Tất nhiên, nó không được tính "trắng" là màu thứ 5 tiềm năng nên giải pháp này vẫn có thể đủ cho ứng dụng của bạn.


1
Đẹp. Thêm màu trắng là ý tưởng tuyệt vời không bao giờ xuất hiện trong đầu (tôi gần như đã sẵn sàng để từ bỏ ColorBrewer). Cảm ơn!
Kazuhito

4

Tôi đã từng gặp vấn đề tương tự. Tôi cần 8 lớp. Tôi đã tạo một cách giải quyết cho phép bạn ít nhất làm cho các danh mục trở nên dễ phân biệt nhất có thể. Nó tăng khoảng cách giữa các giá trị bão hòa của từng màu được tạo bởi colorbrewer theo mặc định. Bằng cách này, bạn có được các danh mục dễ phân biệt nhất trong bản in b / w. Hai lô chỉ thay đổi một chút như bạn có thể thấy bên dưới nhưng trong bw nó có thể tạo ra sự khác biệt.

Cần biết R để sử dụng tập lệnh:

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)

thay đổi giá trị thay đổi giá trị

giá trị ban đầu nhập mô tả hình ảnh ở đây

chỉnh sửa: nếu bạn cũng muốn thay đổi độ sáng (xem thảo luận bên dưới) sử dụng mã sau:

# 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
Cảm ơn @joaoal! Bạn có nhớ thêm đại diện thang độ xám cho mỗi hình ảnh? Thử nghiệm nhanh của tôi về mã của bạn đã tạo ra các hình ảnh gần như giống hệt nhau (đối với mắt chưa được lọc của tôi) khi chúng biến thành thang độ xám 8 bit.
Kazuhito

1
@Kazuhito không chắc chắn làm thế nào để làm điều đó trong R. Trong bản in bw, giải pháp của tôi rõ ràng tốt hơn một chút so với mặc định, tuy nhiên như tôi đã viết ở trên, thật khó để tạo ra sự khác biệt thực sự tốt nếu bạn sử dụng 8 lớp. trong trường hợp của bạn với 5 lớp thì có thể tốt hơn. Bên cạnh việc cải thiện đoạn đường màu, bạn cũng có thể xem xét thêm các biểu tượng vào bản đồ của mình ở trung tâm của mỗi đa giác trong đó mỗi biểu tượng duy nhất đại diện cho một danh mục khác nhau hoặc bạn có thể sử dụng các kiểu điền khác nhau, ví dụ như các mẫu đường. giải pháp của tôi là cho dữ liệu raster nơi bạn không thể làm điều đó.
joaoal

2
+1 @joaoal Cảm ơn thông tin bổ sung của bạn. Chỉ là một ý nghĩ, nhưng làm thế nào về việc thay đổi palette.HSV@coords[x,3]cái nào tương ứng với Giá trị (hoặc Độ sáng) trong không gian màu HSV? (Bạn đã làm việc trên Saturation). Thử nghiệm nhanh của tôi về coords[ ,3]độ tương phản cao hơn nhưng tôi không chắc chắn trong môi trường của bạn.
Kazuhito

2
@Kazuhito Tôi đã thử nó cho ví dụ của tôi và không mang lại kết quả tốt hơn tôi chỉ thay đổi độ sáng. Về lý thuyết, độ bão hòa được liên kết trực tiếp với màu xám trong đó 0 là màu trắng và 1 là màu đen trong bản in bw / hoặc màu đầy đủ, ví dụ như "màu đỏ" trong bản in màu. Độ sáng cũng ảnh hưởng đến độ xám trong bản in nhưng bằng cách nào đó, phạm vi của bạn bị giới hạn do nó thay đổi màu giữa màu đầy đủ, ví dụ như "đỏ" và "đen". Một sự kết hợp của cả hai có thể là một tùy chọn và tôi đã thêm một số mã ở trên để giải thích cho điều đó. Tôi có ấn tượng rằng chỉ cải thiện sự khác biệt trong các màu nhạt hơn, nhưng nó làm xấu đi những màu tối hơn.
joaoal

Cảm ơn, tốt để biết. Tôi cũng đồng ý rằng chúng ta không nên đưa quá nhiều vào Giá trị.
Kazuhito
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.