আমি কীভাবে কোনও আর প্লটে ওভারল্যাপিং লেবেলগুলি এড়াতে পারি? [বন্ধ]


44

আমি আর তে একটি খুব সাধারণ স্ক্রেটারপ্লট লেবেল দেওয়ার চেষ্টা করছি I এটি আমি ব্যবহার করি:

plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)

ফলাফলটি মধ্যযুগীয়, যেমন আপনি দেখতে পাচ্ছেন (প্রসারিত করতে ক্লিক করুন):

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

আমি এই textxyফাংশনটি ব্যবহার করে এর জন্য ক্ষতিপূরণ দেওয়ার চেষ্টা করেছি , তবে এটি আরও ভাল নয় । চিত্রটি নিজেকে আরও বড় করা ঘন ক্লাস্টারের পক্ষে কাজ করে না।

এর জন্য ক্ষতিপূরণ দেওয়ার এবং আর প্লট লেবেলগুলি ওভারল্যাপ না হওয়ার জন্য কোনও কার্যকারিতা বা সহজ উপায় আছে ?


আমার কাছে থাকা ডেটার একটি ছোট উপসেট এখানে রয়েছে:

Name;SI;TI
01_BAD_talking_head;6.944714;4.421208
01_GOOD_talking_head;5.680141;4.864035
01_GOOD_talking_head_subtitles;7.170114;4.664205

1
আমি এখানে অনুরূপ প্রশ্ন পোস্ট করেছি , সেখানকার উত্তরগুলি একবার দেখুন ...
কৌতূহলী

3
আমি একটি সমাধান খুঁজে পেয়েছি ! identify()আপনাকে নিজে সিদ্ধান্ত নেন যেখানে ট্যাগ স্থাপন করতে! এটি আদর্শ নয়, তবে প্রস্তাবিত সমাধানগুলি থেকে এটি আমার পক্ষে সবচেয়ে ভাল কাজ করে।
কৌতুহল

উত্তর:


29

নতুন প্যাকেজ ggrepel দেখুন । ওভারল্যাপিং পাঠ্য লেবেলগুলিকে পিছনে ফেলতে ggrepel ggplot2 এর জন্য রত্ন সরবরাহ করে। এটি geom_text এবং geom_label উভয়ের জন্যই কাজ করে।

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

চিত্রটি এই ব্লগ পোস্ট থেকে নেওয়া হয়েছে ।


19

directlabelsপ্যাকেজ আছে যে। এর ওয়েব পৃষ্ঠা থেকে :

এই প্যাকেজটি হ'ল জালিয়াতি এবং জিজিপ্লাট 2 এর মতো উচ্চ-স্তরের প্লটিং সিস্টেমগুলির সাথে সাধারণ প্লটগুলির সরাসরি লেবেলিংকে সহজ করে তোলে এমন দরকারী ফাংশনগুলির একটি বডি সরবরাহ করে প্রতিদিনের পরিসংখ্যান অনুশীলনে সরাসরি লেবেলিংকে বাস্তবে পরিণত করার প্রয়াস।

যদিও এটি ঘন প্লটগুলির পক্ষে সর্বদা সম্ভব নাও হতে পারে।

এখানে একটি সংক্ষিপ্ত উদাহরণ:

set.seed(123)
a <- c(rnorm(10,-3,2),rnorm(10,3,2))
b <- c(rnorm(10,-3,2),rnorm(10,3,2))
dfr <- data.frame(a,b)
dfr$t <- c(paste("A",1:10,sep=""),paste("B",1:10,sep=""))
direct.label(xyplot(b~a,dfr,groups=t, col="black"))

আমি পয়েন্ট কালারিংয়ের সাথে মুক্তি পেয়েছি col="black"তবে লেবেলগুলি নয়।


1
এটি কাজ করতে আমার সমস্যা হচ্ছে। আপনি সম্ভবত একটি সহজ কাজের উদাহরণ প্রদান করতে পারেন?
স্ল্যাশ 16:30

1
আপনার ক্ষেত্রে, এর মতো কিছু direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))একই ফলাফল পাওয়া উচিত।
লরেন্ট

পারফেক্ট। আপনার শেষ সহজ উদাহরণটি ব্যবহার করে আমি এখানে কী শেষ করেছি । রঙের লেবেল এবং পয়েন্টগুলি আসলে খুব সুন্দর, যেহেতু আপনি জানেন যে লেবেলগুলি কোথায়।
17hh এ ছোঁয়া

1
আমাকে কাজে library(lattice)যেতে xyplotহয়েছিল।
ডেভিড জে হ্যারিস

14

আমি আপনাকে wordcloudপ্যাকেজটি একবার দেখুন পরামর্শ দিই । আমি জানি এই প্যাকেজটি ঠিক পয়েন্টগুলিতে নয় বরং নিজের লেবেলে ফোকাস করে এবং শৈলীটি বরং স্থির বলে মনে হয়। তবে তবুও, এটি ব্যবহার করে আমি যে ফলাফল পেয়েছি তা বেশ চমকপ্রদ ছিল। এছাড়াও নোট করুন যে প্রশ্নে থাকা প্যাকেজ সংস্করণটি আপনি প্রশ্নটি জিজ্ঞাসা করার সময় সম্পর্কে প্রকাশ হয়েছিল, সুতরাং এটি এখনও খুব নতুন।

http://blog.fellstat.com/?cat=11

টেক্সটপ্লট () আউটপুট


9

আমি যে প্লট নিয়ে কাজ করছি তার বেশ কয়েকটিতে আমি একই ধরণের সমস্যার মধ্যে পড়েছিলাম এবং একটি মৌলিক প্যাকেজ লিখেছিলাম যা বস্তুর অবস্থানগুলি সামঞ্জস্য করতে বল ক্ষেত্রের সিমুলেশন ব্যবহার করে। উপরোক্ত উদ্ধৃত কয়েকটি সমাধানের সুবিধা হ'ল 2 ডি-তে আপেক্ষিক বস্তুর সান্নিধ্যের জন্য গতিশীল সামঞ্জস্য। যদিও হিজিস্টিকস এবং জিজিপ্লাটের সাথে সংহতকরণ ইত্যাদিসহ অনেক উন্নতি সম্ভব হয়েছে, তবে মনে হয় এটি কার্য সম্পাদন করে। নিম্নলিখিত কার্যকারিতা চিত্রিত:

install.packages("FField", type = "source")
install.packages("ggplot2")
install.packages("gridExtra")
library(FField)
FFieldPtRepDemo()

সমাধানের জন্য আমার চাহিদা পূরণের জন্য এখন বিভিন্ন ক্ষেত্র এবং পয়েন্ট বিতরণের কোনও হিউরিস্টিক্স নেই এবং আমি ভাবেন লোকদের জন্য দ্রুত সাহায্যকারী কিছু পেতে চাই তবে আমি এগুলিকে মাঝারি মেয়াদে যুক্ত করব। এই সময়ে আমি চার্টগুলি 100x100 এবং পিছনে স্কেলিং করার প্রস্তাব দিচ্ছি এবং সামঞ্জস্যিত হিসাবে ডিফল্ট আকর্ষণ এবং বিকর্ষণ পরামিতিগুলি সামান্য টুইট করে।


8

আপনি কেবলমাত্র আর দ্বারা উত্পাদিত হিসাবে লেবেলগুলি সঠিকভাবে কাজ করতে না পারার ক্ষেত্রে, মনে রাখবেন আপনি সর্বদা গ্রাহকগুলিকে একটি ভেক্টর ফর্ম্যাটে (.pdf এর মতো) সংরক্ষণ করতে পারেন এবং এগুলি ইনকস্কেপ বা অ্যাডোব ইলাস্ট্রেটারের মতো একটি সম্পাদনা প্রোগ্রামে টানতে পারেন।


8

আর দেখার জন্য কয়েকটি অতিরিক্ত সরঞ্জাম:

  • spread.labelsফাংশন plotrixপ্যাকেজ
  • thigmophobe.labelsমধ্যে plotrixপ্যাকেজ
  • spread.labsফাংশন TeachingDemosপ্যাকেজ
  • TkIdentifyফাংশন TeachingDemosপ্যাকেজ

এগুলি আপনার জন্য সবকিছু করবে না তবে তাদের মধ্যে একটি সমাধানের অংশ হতে পারে।

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