ฉันขอแนะนำให้ใช้ช่องว่างสี HSV หรือ HSL ไม่ใช่พื้นที่สี RGB เพราะ HSV และ HSL มีโครงสร้างที่ดีกว่าสำหรับการสร้างสีที่ดูแตกต่างจากมนุษย์ คุณจะมีงานในรูปแบบ RGB มากขึ้น (ถึงแม้ว่าจะมีการแปลงไปมาอยู่บ้างหากคุณต้องการ)
นี่คือลักษณะของ HSV / HSL:
เมื่อใช้พื้นที่สี HSV หรือ HSL คุณสามารถสมมติ (โดยคร่าว ๆ ) ว่าความแตกต่างระหว่างองค์ประกอบ H (ฮิว) ของสองสีเป็นการประมาณระยะห่างที่ดีระหว่างสี - นั่นคือการเปลี่ยนแปลงของสียิ่งมาก สีที่ต่างกันจะมีลักษณะกับมนุษย์ คุณสามารถลองเล่นกับ S (saturation) และ L / V (lightness / value) รวมถึง eke out อีกสองสามสีที่แตกต่างกันมาก แต่พวกมันจะไม่ต่างไปจากการเปลี่ยนค่าเดียวกันกับสีสันที่ต่างกัน
ขึ้นอยู่กับจำนวนของสีที่แตกต่างที่คุณต้องการคุณสามารถแบ่งพื้นที่สีเป็นจำนวนสีที่แตกต่างกัน ตัวอย่างเช่นหากคุณมีค่าเฉดสีเท่ากับ 256 และคุณต้องการ 16 สีที่แตกต่างกันสีแรกของคุณอาจเป็น (0, 128, 128), สีที่สองของคุณ (16, 128, 128) และอื่น ๆ ฉันค่อนข้างเลือกค่า S / L อย่างสุ่มที่ตรงกลางตรงนี้เพราะมันจะเบาและอิ่มตัวพอที่จะเห็นความแตกต่างของสีได้อย่างชัดเจน ระบบนี้ใช้งานง่ายและคุณไม่จำเป็นต้องรู้อะไรเลยเกี่ยวกับการใช้สีในกราฟ / แผนที่
หากคุณไม่ทราบล่วงหน้าว่าต้องการสีที่แตกต่างกันจำนวนเท่าใด แต่คุณรู้ว่าขีด จำกัด สูงสุดและการแบ่งช่วงสีเป็นสีโดยคำนึงถึงขีด จำกัด สูงสุดดังกล่าวข้างต้นยังคงให้สีที่แตกต่างกันตามการรับรู้คุณสามารถใช้ระบบเดียวกัน ขีด จำกัด บน
หากคุณต้องการสีที่ต่างกันคุณสามารถหลีกเลี่ยงการใช้สีที่คล้ายกันหรือสีเดียวกันตราบใดที่สีเหล่านั้นไม่ปรากฏใกล้องค์ประกอบอื่น ๆ ของกราฟที่มีสีใกล้เคียงกัน สิ่งนี้จำเป็นต้องรู้สถานการณ์ adjacency ของคุณในกราฟที่คุณกำลังเรนเดอร์และอาจไม่ตรงไปตรงมาและถึงแม้ว่ามันอาจไม่ใช่ความคิดที่ดีเพราะ Dukeling ชี้ให้เห็นในความคิดเห็น: มันอาจทำให้ผู้ชมสับสนว่ามีการใช้สีเดียวกัน สองครั้งในกราฟสำหรับแนวคิดที่แตกต่างกันสองแบบ
ในที่สุดสถานการณ์ที่ซับซ้อนที่สุดกราฟของคุณก็ซับซ้อนพอที่คุณจะมีพื้นที่สีไม่เพียงพอเพื่อให้แน่ใจว่าคุณจะไม่จบลงด้วยองค์ประกอบที่แตกต่างกับสีที่คล้ายกันมากเกินไปโดยใช้ระบบข้างต้น ในกรณีนี้คุณต้องสร้างกราฟ adjacency ขององค์ประกอบของกราฟการสร้างภาพของคุณ การประจบที่นี่เป็นแนวคิดที่คลุมเครือ - คุณจะต้องกำหนดอย่างถูกต้องสำหรับสถานการณ์จริงของคุณ ตัวอย่างเช่นในตัวอย่างที่สองของคุณข้อมูลในวันที่ 12 กรกฎาคมมีจุดทำให้หายใจไม่ออกซึ่งทุกสีติดกัน วิธีการหนึ่งที่สามารถช่วยให้คุณถ้าคุณสามารถสร้างกราฟถ้อยคำเป็นกราฟสีปัญหา - มีห้องสมุดที่อาจช่วยให้คุณ - ตัวอย่างเช่นเพิ่ม :: กราฟใน C