কোনও আর স্ক্র্যাটারপ্লোটে পয়েন্টের আকার নিয়ন্ত্রণ করতে চান?


116

আর-তে, plot()ফাংশনটি একটি pchযুক্তি নেয় যা প্লটের পয়েন্টগুলির উপস্থিতি নিয়ন্ত্রণ করে। আমি কয়েক হাজার পয়েন্ট দিয়ে স্ক্রেটারপ্লট তৈরি করছি এবং একটি ছোট, তবে খুব ছোট বিন্দু নয়। মূলত, আমি pch='.'খুব ছোট বলে মনে করি তবে pch=19খুব মোটা হতে পারি। মাঝখানে কিছু আছে বা কোনও উপায়ে বিন্দুগুলি স্কেল করার কোনও উপায় আছে?


বিন্দু আরও ছোট করার পরিবর্তে, 100 টি এলোমেলো তথ্য পয়েন্টগুলি 1000 এর চেয়ে দেখতে আরও সহজ হবে তা বলার জন্য কী উপায় আছে?
ব্যবহারকারী 2363642

অনেক ছোট পয়েন্টের জন্য, আলফা (স্বচ্ছতা) ব্যবহার করে স্ক্রেটার প্লটটিকে প্লট করার জন্য কিছু কম পয়েন্ট ব্যবহার না করেই আরও তথ্যপূর্ণ করে তুলতে পারে।

1
আমি ব্যবহার না করার পরামর্শ দিচ্ছি pch='.', এটি কেন্দ্রের বাইরে থাকবে। উত্স: আমি pch='.'প্রায়শই ব্যবহার
করতাম

@ জেনোরামা আপনার ·পরিবর্তে ব্যবহারের অর্থ .?
নানাকি

@ নানকি কম-বেশি, তবে অদ্ভুতভাবে আপনার প্রতীকটি ছোট বাক্স হিসাবে প্রদর্শিত হবে যখন আমি এটি আর এ ব্যবহার করি below নীচের উত্তরগুলি সঠিক পদ্ধতির ব্যাখ্যা দেওয়ার জন্য একটি ভাল কাজ করে।
জেনোরোমা

উত্তর:


100

cexযুক্তিটি চেষ্টা করুন :

?par

  • cex
    ডিফল্টের তুলনায় টেক্সট এবং চিহ্নগুলি প্লট করার মাধ্যমে সেই পরিমাণটি প্রদান করে একটি সংখ্যাসূচক মান। মনে রাখবেন যে কিছু গ্রাফিক্স ফাংশন যেমন প্লট.ডিফল্টের এই নামের একটি যুক্তি রয়েছে যা এই গ্রাফিকাল প্যারামিটারকে বহুগুণ করে এবং কিছু ফাংশন যেমন পয়েন্টগুলি পুনর্ব্যবহারযোগ্য মানগুলির একটি ভেক্টর গ্রহণ করে। একের চেয়ে বেশি দৈর্ঘ্যের কোনও ভেক্টর সরবরাহ করা হলে অন্যান্য ব্যবহারগুলি কেবল প্রথম মানটি গ্রহণ করবে।

15
আমি মনে করি না আমি চিহ্নের আকার নিয়ন্ত্রণ করতে 'সিএক্স' ব্যবহার করব যদি না আমার কাছে অন্য কোনও বিকল্প না থাকে। এটি কেবল কিছু সময় কাজ করে; নিয়মটি হ'ল যখন 'পার্স' এর মাধ্যমে 'সেক্সেক্স' সেট করা হয়, এটি প্লটের উপর (সর্বাধিক) পাঠ্যের আকারকে প্রভাবিত করে যখন 'প্লট' এর ভিতরে সেট করা হয়, তখন 'সেক্স' কেবলমাত্র প্রতীক আকারকে প্রভাবিত করে। সুতরাং আপনি যদি সেই নিয়মটি ভুল প্রয়োগ করেন তবে কেবলমাত্র আপনার প্রতীক আকারটিই পরিবর্তন করা হবে না, তবে আপনার এখন পাঠ্যের আকারকে প্রভাবিত করার একাধিক পরামিতি রয়েছে (cex.axis, cex.lab, cex.main, এবং cex.sub - সমস্ত একই রকম হয়) 'সেক্স' হিসাবে কাজ করুন, কেবল টুকরা অনুসারে)। এর মতো কোড বজায় রাখা এবং প্রসারিত করা কঠিন।
ডগ

5
একমত। ফিগার মার্জিন সহ সমস্ত ধরণের জিনিসকে পরিবর্তনের cexমাধ্যমে বিশ্বব্যাপী সেট করা parযা আপনাকে সংশোধন করতে হবে। ভিতরে সেট cexকরা plot, যদিও কাজ করে মনে হচ্ছে।
উড়ে

ডগের মন্তব্যে উপরের পরামর্শটি অগত্যা ভুল নয় তবে cexষড়যন্ত্র করার সময় যুক্তিটি ব্যবহার করে এটি কোনও সম্ভাব্য সমস্যার উল্লেখযোগ্য পরিমাণে অগ্রাহ্য করে । এমন অনেকগুলি উদাহরণ রয়েছে যেখানে এটি উভয়ই কার্যকর এবং সর্বোত্তম বিকল্প।
jorran

lwdpch এর লাইন প্রস্থ নিয়ন্ত্রণ করে, যেমন plot(1:5, pch=1:5, col=1:5, lwd=1:5)। আপনাকে ধন্যবাদ sthda.com/english/wiki/…
জেনোরোমা

95

pch = 20 "" এর মধ্যে আকারের প্রতীক প্রদান করে । এবং 19।

এটি একটি পূর্ণ প্রতীক (যা সম্ভবত আপনি চান)।

এ ছাড়াও, আর-এর বেস গ্রাফিক্স সিস্টেমটি ব্যবহারকারীর প্রতীক আকার, রঙ এবং আকারের উপর সূক্ষ্ম-দানা নিয়ন্ত্রণের অনুমতি দেয়। যেমন,

dfx = data.frame(ev1=1:10, ev2=sample(10:99, 10), ev3=10:1)

with(dfx, symbols(x=ev1, y=ev2, circles=ev3, inches=1/3,
                  ann=F, bg="steelblue2", fg=NULL))

গ্রাফ উদাহরণ


আমি এই চক্রান্তটি ভালবাসি, তবে আমি চাই যে ব্যাসার্ধটি সেই বিন্দুতে পর্যবেক্ষণের সংখ্যার সমান হোক, আপনি কীভাবে এটি করতে পারেন তা আমাকে দেখাতে পারেন?
ডার্ক আর্টস

pi*R^2(পৃষ্ঠতল) পর্যবেক্ষণ সংখ্যার সমানুপাতিক হওয়া উচিত।
SESman

5
@ সরাতিস এটি আপনার যা ইচ্ছা তা করবে:symbols(x=dfx$ev1, y=dfx$ev2, circles=sqrt(dfx$ev3/pi), inches=1/3, ann=F, bg="steelblue2", fg=NULL)
fmark

1
একই গ্রাফে একাধিক সিরিজ প্লট করতে আমি কীভাবে এটি ব্যবহার করতে পারি তার কোনও ধারণা? যেমন "পয়েন্টস (x = dfx2 $ ev1, y = dfx2 $ ev2, চেনাশোনাগুলি = dfx2 $ ev3, ...)" কাজ করে না।
নিউডিমে

আপনি যদি ভাবছেন যে "একটি ইঞ্চি কী?" এখানে দেখুন
মাইকেলচিরিকো 25:38

22

আরসিএস হিসাবে বলা হয়েছে, cexবেস গ্রাফিক্স প্যাকেজে কাজ করবে। আমি বিবেচনা করি যে আপনি আপনার গ্রাফটি করতে ইচ্ছুক নন ggplot2তবে আপনি যদি করেন তবে একটি sizeনান্দনিক বৈশিষ্ট্য রয়েছে যা আপনি সহজেই নিয়ন্ত্রণ করতে পারেন ( ggplot2ব্যবহারকারী-বান্ধব ফাংশন যুক্তি রয়েছে: টাইপিংয়ের পরিবর্তে cex(চরিত্রের বিস্তৃতি), ggplot2যেমন আপনি টাইপ করতে পারেন size = 2এবং আপনি 2 মিমি পয়েন্ট পাবেন)।

উদাহরণটি এখানে:

### base graphics ###
plot(mpg ~ hp, data = mtcars, pch = 16, cex = .9)

### ggplot2 ###
# with qplot()
qplot(mpg, hp, data = mtcars, size = I(2))
# or with ggplot() + geom_point()
ggplot(mtcars, aes(mpg, hp), size = 2) + geom_point()
# or another solution:
ggplot(mtcars, aes(mpg, hp)) + geom_point(size = 2)

4
এবং, আপনি যদি সত্যিই কয়েক হাজার পয়েন্ট প্লট করছেন, ggplot2 এর দেখতে সুন্দর লাগার বিভিন্ন বিকল্প উপায় রয়েছে - আলফা অ্যাডজাস্টমেন্টস, হেক্স বিন, কনট্যুর প্লট ইত্যাদি the জিগপ্লাট 2 বইয়ের পৃষ্ঠা 72২- one77 দেখুন, যদি আছে আপনার লাইব্রেরিতে বা আপনার লাইব্রেরিতে স্প্রিংগার বইগুলিতে বৈদ্যুতিন অ্যাক্সেস রয়েছে (আমি মনে করি বেশিরভাগ আর বইগুলি সেখানে রয়েছে)।
ম্যাট পার্কার

হ্যাঁ ... আমি বিশেষত alphaস্ক্র্যাপপ্লটগুলিতে ব্যবহার করি , যাতে অতিরিক্ত কাজটি এড়ানো যায় না।
aL3xa

@ aL3xa আপনি বেস গ্রাফিক্স প্যাকেজে আলফা ব্যবহার করতে পারেন । col = rgb(0, 0, 0, 0.6)প্লট বিকল্পগুলিতে উদাহরণস্বরূপ যুক্ত করুন।
রবজান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.