ডিজিটাল রঙ প্যালেট অনুকরণ করুন


191

পছন্দসই সংখ্যক রঙের জন্য ggplot2 এর ডিফল্ট রঙ প্যালেট অনুকরণ করতে আমি কোন ফাংশন ব্যবহার করতে পারি। উদাহরণস্বরূপ, 3 টির একটি ইনপুট এই রঙগুলির সাথে এইচএক্স রঙের একটি চরিত্রের ভেক্টর তৈরি করতে পারে: এখানে চিত্র বর্ণনা লিখুন


10
স্কেল প্যাকেজটি দেখুন
— হ্যাডলি

2
হ্যাঁ! আমি display.brewer.all()আমার ডেস্কে একটি প্রিন্ট আউট রাখি। আমি মনে করি যে আমি উপাদানগুলি জন্য সেট 1 পছন্দ করি।
— জন কলবি

ভাল ধারণা! আমি একই প্রিন্টআউট করতে যাচ্ছি। সেট 1 এ সম্মত, আমি ইতিমধ্যে আমার বেশিরভাগ নতুন চার্টে এটি ব্যবহার করে দেখতে পেয়েছি।
— এসফুন 28

উত্তর:


264

এটি 15 থেকে শুরু করে রঙ চাকাটির চারপাশে সমানভাবে দূরত্বে রঙিন রঙের:

gg_color_hue <- function(n) {
  hues = seq(15, 375, length = n + 1)
  hcl(h = hues, l = 65, c = 100)[1:n]
}

উদাহরণ স্বরূপ:

n = 4
cols = gg_color_hue(n)

dev.new(width = 4, height = 4)
plot(1:n, pch = 16, cex = 2, col = cols)

এখানে চিত্র বর্ণনা লিখুন


2
+1 টি আমি আপনার সুন্দর মত, সহজ সমাধান, যদিও আমি এখনো বুঝতে কেন আপনি চেষ্টা করছি length=n+1এ seq, যেহেতু আমিlength=n
— Andrie

18
কারণ 0 == 360
— হ্যাডলি

128

এটি থেকে ফলাফল

library(scales)
show_col(hue_pal()(4))

চার রঙের জিজিপ্লট

show_col(hue_pal()(3))

তিন রঙের জিপিপ্লট


1
অদ্ভুতভাবে যথেষ্ট, রঙগুলি (কমপক্ষে দ্বিতীয় ছবিতে) তাদের আরজিবি কোডগুলির সাথে মেলে না। তবে, আমি স্থানীয়ভাবে তৈরি একটি গ্রাফ খুঁজছি, এই আরজিবি কোডগুলি সঠিক are
— স্পারহাক

1
সম্ভবত এটি একটি ব্রাউজার জিনিস?
— চূড়ায়_লিকা_স্পিডার

1
হ্যাঁ, খুব বিজোড় ফায়ারফক্সে, সবুজটি # 15ba3e, ক্রোমিয়ামে এটি # 00b83a এবং চিত্রটি ডাউনলোড করার পরে এবং একটি উত্সর্গীকৃত চিত্র প্রোগ্রামে (জেনউইনভিউ) দেখার পরে এটি # 00b839। কেবল কনকরার এটিকে # 00ba38 হিসাবে সঠিকভাবে দেখায়। সুতরাং শুধুমাত্র একটি সঠিক, এবং কোনওটিই সামঞ্জস্যপূর্ণ নয়!
— স্পারহক

1
রঙের নাম, যেমন 'red2', 'নীল 3' পাওয়ার কোনও উপায় আছে? রঙ কোড, যেমন # 00b83a, স্বজ্ঞাতভাবে ব্যবহার করা শক্ত।
— সিবো জিয়াং

2
অনুলিপি এবং অনুলিপি করতে হেক্স মানগুলি হ'ল: # f8766 ডি - লাল # 00ba38 - সবুজ # 83b0fc - নীল
— প্লুকে

62

এই উত্তরগুলি সব খুব ভাল, কিন্তু আমি স্ট্যাকওভারফ্লোতে আবিষ্কার করা অন্য একটি জিনিস ভাগ করে নিতে চেয়েছিলাম যা সত্যিই বেশ দরকারী, এখানে সরাসরি লিঙ্ক

মূলত, @ ডিডজিসএলফার্টস দেখায় যে আপনি কীভাবে সমস্ত রঙ, স্থানাঙ্ক ইত্যাদি পেতে পারেন যা জিজিপ্লট আপনার তৈরি প্লট তৈরি করতে ব্যবহার করে। খুব সুন্দর!

p <- ggplot(mpg,aes(x=class,fill=class)) + geom_bar()
ggplot_build(p)$data
[[1]]
     fill  y count x ndensity ncount  density PANEL group ymin ymax xmin xmax
1 #F8766D  5     5 1        1      1 1.111111     1     1    0    5 0.55 1.45
2 #C49A00 47    47 2        1      1 1.111111     1     2    0   47 1.55 2.45
3 #53B400 41    41 3        1      1 1.111111     1     3    0   41 2.55 3.45
4 #00C094 11    11 4        1      1 1.111111     1     4    0   11 3.55 4.45
5 #00B6EB 33    33 5        1      1 1.111111     1     5    0   33 4.55 5.45
6 #A58AFF 35    35 6        1      1 1.111111     1     6    0   35 5.55 6.45
7 #FB61D7 62    62 7        1      1 1.111111     1     7    0   62 6.55 7.45

45

হ্যাডলি উইকহ্যামের জিপিপ্লট 2 বইয়ের 106 পৃষ্ঠা থেকে:

ডিফল্ট রঙের স্কীম, স্কেল_সকল_এইচসিএল রঙের চক্রের চারপাশে সমানভাবে ব্যবধানযুক্ত বর্ণ বেছে নেয় ues

বিপরীত প্রকৌশল কিছুটা দিয়ে আপনি এই ফাংশনটি তৈরি করতে পারেন:

ggplotColours <- function(n = 6, h = c(0, 360) + 15){
  if ((diff(h) %% 360) < 1) h[2] <- h[2] - 360/n
  hcl(h = (seq(h[1], h[2], length = n)), c = 100, l = 65)
}

বারপ্লট এ এটি প্রদর্শন করে:

y <- 1:3
barplot(y, col = ggplotColours(n = 3))

এখানে চিত্র বর্ণনা লিখুন


2
এটি এর চেয়েও সহজ। আপনি বীজগণিতের প্রথম লাইনটি এড়াতে পারবেন, যদিও এটি সাহায্যে নেই, তবে hclমানগুলি> 360 কে পুনর্বিবেচনা করে
— জন কোলবি

13
আপনি scales:::show_col(ggplotColours(n=3))রঙ এবং মানগুলি প্রদর্শন করতেও ব্যবহার করতে পারেন
— স্ট্যাট-আর

যদিও আমি এখনও স্কেলগুলি কীভাবে পেতে পারি এবং কীভাবে (হেক্স বা অন্য যে কোনও ফর্ম্যাটটি) এর প্লটকে মূল্য দেয় তার তীরচিহ্নগুলি প্রদর্শন করতে পারি না ...
— স্টেফানো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.