আমি জানি আমি এটির সাথে সত্যিই দেরি করেছি, তবে আমি মনে করি এটির পরিবর্তে একটি সহজ সমাধান আমি পেয়েছি।
যদি আপনার সোর্স কোড floating.pie()
(যেমন কল করে getAnywhere(floating.pie)
) দেখে থাকেন তবে আপনি খেয়াল করবেন এটি একটি খুব সহজ তবে কার্যকর পদ্ধতির ব্যবহার করেছে: পাই সেগমেন্টগুলি বহুভুজ হিসাবে অঙ্কন করছে। আপনার বারের চার্ট থেকে আপনি যা চান তা হ'ল বার (কোনও লেবেল, অক্ষ ইত্যাদি নয়), আপনি একই পন্থাটি অনুসরণ করতে পারেন এবং নিজের ফাংশনটি লিখতে পারেন। এখানে একটি দ্রুত এবং নোংরা সংস্করণ:
# the function
mapbars <- function (x, xllc = 0, yllc = 0, barwidth=1, maxheight=10){
# calculate how long each bar needs to be
bars <- (x/max(x)) * maxheight
# get some quick colors
col <- rainbow(length(x))
for(i in 1:length(x)){
# figure out x- and y coordinates for the corners
leftx <- xllc + ((i-1) * barwidth)
rightx <- leftx + barwidth
bottomy <- yllc
topy <- yllc + bars[i]
# draw the bar
polygon(x=c(leftx, rightx, rightx, leftx, leftx),
y=c(bottomy, bottomy, topy, topy, bottomy),
col=col[i])
}
}
x
মানগুলি বার দ্বারা প্রতিনিধিত্ব করার জন্য
xllc
এবং yllc
আপনি যে কোনও সমন্বয় ব্যবস্থা ব্যবহার করছেন তাতে বাম বারের নীচের বাম কোণটির অবস্থান নির্দিষ্ট করুন
barwidth
এবং maxheight
বারগুলির আকার স্কেলিংয়ের জন্য ব্যবহৃত হয়
এখানে একটি বেসিক sp
ভিত্তিক প্লট সহ একটি ডেমো রয়েছে । আমি মনে করি না যে আমি এর সাথে plotrix
আগেও কাজ করেছি , তবে কীভাবে floating.pie
কাজ করে তার উপর ভিত্তি করে আমি ধরে নেব যে এটির সাথেও কাজ করা উচিত plotrix
।
library(sp)
library(maptools) # just for easy access to a background map
# load some country borders as a background
data("wrld_simpl")
plot(wrld_simpl)
# zoom on a bit …
mexico <- subset(wrld_simpl, NAME=="Mexico")
plot(mexico, axes=TRUE)
# data for the bars
x1 <- c(4, 7, 1, 2)
# plot
plot(mexico, axes=TRUE)
mapbars(x=x1, xllc=-110, yllc=20, barwidth=.5, maxheight=5)
legend(x="topright", pch=22, col="black", pt.bg=rainbow(x1), legend=c("foo", "bar", "baz", "foobar"))
# add another one:
x2 <- c(9, 21, 64, 45, 33, 43, 12, 7)
mapbars(x=x2, xllc=-100, yllc=25, barwidth=.2, maxheight=2)
ফলাফলটি এরকম দেখাচ্ছে:
ggsubplot
প্যাকেজ দিয়ে কীভাবে করব তাও জানতাম , তবে এটি এখন অবচয় করা হয়েছে এবং এটি কাজ করবে না (যেমন আপনি উল্লেখ করেছেন)। সম্ভবত এই পোস্টটি একটি সূচনা পয়েন্ট হতে পারে: স্ট্যাকওভারফ্লো.com