কিংবদন্তি ggplot 2.2 সরান


249

আমি এক স্তরের কিংবদন্তি রাখার চেষ্টা করছি (মসৃণ) এবং অন্যটির (কিংবদন্তি) কিংবদন্তি সরিয়ে ফেলছি। আমি কিংবদন্তী দূরে সরিয়ে রাখে চেষ্টা করেছি guides(colour = FALSE)এবং geom_point(aes(color = vs), show.legend = FALSE)

সম্পাদনা : এই প্রশ্ন এবং এর উত্তরগুলি জনপ্রিয় হওয়ায় একটি পুনরুত্পাদনযোগ্য উদাহরণটি যথাযথ বলে মনে হচ্ছে:

library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) + 
theme_bw() 

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


5
একটি ন্যূনতম পুনরুত্পাদনযোগ্য উদাহরণ আরও সহজ হতে হবে। কোডের দীর্ঘ লাইনে অনেকগুলি অপ্রয়োজনীয় (হাতের সমস্যায়) কোড রয়েছে বলে মনে হয় পাশাপাশি এটি বর্তমানে যেমন লেখা হয়েছে তেমন এটি সম্পূর্ণ অপ্রয়োজনীয় pr
মণেল

উত্তর:


443

আর কুকবুক থেকে , যেখানে বিপি আপনার জিপিপ্লট:

নির্দিষ্ট নান্দনিকতার জন্য কিংবদন্তি সরান (পূরণ করুন):

bp + guides(fill=FALSE)

স্কেল নির্দিষ্ট করার সময় এটিও করা যেতে পারে:

bp + scale_fill_discrete(guide=FALSE)

এটি সমস্ত কিংবদন্তি অপসারণ করে:

bp + theme(legend.position="none")

25
@ অ্যালেক্সের একটি মন্তব্যের জবাব হিসাবে: নোট যা theme_bw()ব্যবহার করে করা কোনও সংজ্ঞাতে হস্তক্ষেপ করতে পারে theme()। ব্যবহার করার সময় theme_bw(), আপনি অন্য কোনও থিম বিকল্প পরিবর্তন করার আগে প্লটে এটি যুক্ত করার বিষয়টি নিশ্চিত করুন।
Fabern

1
কিন্তু যখন আমি এই জাতীয় কিছু করি bp + theme(legend.position="none") + theme_classic(), কিংবদন্তিগুলি ফিরে আসে। তাহলে এটি কীভাবে সরাবেন?
প্রেমেরআর

3
@ ল্যাভআর থিম_ক্ল্যাসিকটিকে প্রথমে রাখুন:bp + theme_classic() + theme(legend.position="none")
হাইপোথিসিস

1
এটি আমার চক্রান্তের উপর কোনও প্রভাব ফেলেনি। আমি @ টেজেবো'র পদ্ধতিকে সফলভাবে ব্যবহার করেছি।
জেমস হিরশর্ন

80

এর আর একটি সমাধান হতে পারে:
আপনার কোডটি ছিল:

geom_point(aes(..., show.legend = FALSE))

আপনি নির্দিষ্ট করতে পারেন show.legendপ্যারামিটার পরaes কল:

geom_point(aes(...), show.legend = FALSE)

তাহলে সংশ্লিষ্ট কিংবদন্তি অদৃশ্য হয়ে যাবে


3
এটি একটি খুব সুন্দর পদ্ধতির। আরও স্বজ্ঞাত হিসাবে।
patL

2
এই সমাধানটি ছিল যা কিংবদন্তি থেকে অক্ষরগুলি সরিয়ে ফেলতে কাজ করেছিল যখন আমি জিন_টেক্সট ব্যবহার করে লাইনগুলিকে বর্ণিত করে। এখানে কোনও scale_labelআদেশ নেই (না এটি কোনও অর্থ দেয় না), এবং guide(label = FALSE)এটিও কার্যকর হয়নি। ধন্যবাদ!
মেলিসা কী

45

যেহেতু প্রশ্ন এবং ব্যবহারকারীর 3490026 এর উত্তর শীর্ষ অনুসন্ধান হিট, তাই আমি এখন পর্যন্ত করা পরামর্শগুলির একটি সংক্ষেপণযোগ্য উদাহরণ এবং একটি সমাধান দিয়েছি যা একক সমাধানের সাথে ওপির প্রশ্নের স্পষ্টতই সম্বোধন করেছে।

যেগুলি ggplot2করে এবং বিভ্রান্তিকর হতে পারে তার মধ্যে একটি হ'ল এটি যখন একই ভেরিয়েবলের সাথে যুক্ত হয় তখন এটি স্বয়ংক্রিয়ভাবে নির্দিষ্ট কিংবদন্তিগুলিকে মিশ্রিত করে। উদাহরণস্বরূপ, factor(gear)দুবার প্রদর্শিত হয়, একবার জন্য linetypeএবং একবার এর জন্য fill, একত্রিত কিংবদন্তির ফলাফল। বিপরীতে, gearএর নিজস্ব কিংবদন্তি এন্ট্রি রয়েছে কারণ এটি এর মতো হিসাবে বিবেচিত হয় না factor(gear)। এখনও অবধি প্রদত্ত সমাধানগুলি সাধারণত ভালভাবে কাজ করে। তবে মাঝে মধ্যে আপনাকে গাইডগুলিকে ওভাররাইড করার প্রয়োজন হতে পারে। নীচে আমার শেষ উদাহরণ দেখুন।

# reproducible example:
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) + 
theme_bw() 

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

সমস্ত কিংবদন্তি সরান: @ ব্যবহারকারী 3490026

p + theme(legend.position = "none")

সমস্ত কিংবদন্তি সরান: @ ডিহাইম

p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)

কিংবদন্তি বন্ধ করুন: @ টেজেবো

ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs), show.legend = FALSE) +
geom_point(aes(shape = factor(cyl)), show.legend = FALSE) +
geom_line(aes(linetype = factor(gear)), show.legend = FALSE) +
geom_smooth(aes(fill = factor(gear), color = gear), show.legend = FALSE) + 
theme_bw() 

ভরাট সরান যাতে লিনাইটাইপ দৃশ্যমান হয়

p + guides(fill = FALSE)

স্কেল_ফিল_ ফাংশনের মাধ্যমে উপরের মতো একই:

p + scale_fill_discrete(guide = FALSE)

এবং এখন ওপির অনুরোধের একটি সম্ভাব্য উত্তর

"একটি স্তর (মসৃণ) এর কিংবদন্তি রাখতে এবং অন্যটির (কিংবদন্তি) কিংবদন্তি সরিয়ে ফেলতে"

অ্যাডহক পোস্ট-হক কিছু বন্ধ করুন

p + guides(fill = guide_legend(override.aes = list(color = NA)), 
           color = FALSE, 
           shape = FALSE)  

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


2
কেবলমাত্র লক্ষ্য করা গেল শেষ প্লটের নীল রঙের রঙ গ্রাফটিতে উপস্থিত হবে না, কেন তা নিশ্চিত নয় ...
প্যাট্রিকটি

warnings()আপনি নিজের কোডটি চালানোর পরে টাইপ করুন এবং আপনি নীল পটিটি প্রদর্শিত না হওয়ার কারণ (গুলি) দেখতে পাবেন।
মার্কাস

@মার্কাস: ধন্যবাদ! সমস্যাটি পৃথক হওয়ায় আমি উদাহরণটি সম্পাদনা করতে বিরক্ত করব না। যাইহোক, seকখন এটি গণনা করা হয় না তার জন্য কোনও কিংবদন্তিটি বোধগম্য হয় । গিথুব সম্ভবত সম্ভবত একটি সমস্যা মূল্যবান, কিন্তু আমার এখনই শক্তি নেই ...
প্যাট্রিকটি

13

যদি আপনার চার্টটি fillএবং colorনান্দনিকতা উভয়ই ব্যবহার করে তবে আপনি কিংবদন্তিটি সরিয়ে ফেলতে পারেন:

+ guides(fill=FALSE, color=FALSE)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.