ডেটা না সরিয়ে ggplot2 অক্ষ সীমাবদ্ধ করুন (সীমা ছাড়াই): জুম করুন


106

আপনি ggplot এ অক্ষ সীমা নির্দিষ্ট করে দিলে বাহ্যিক পয়েন্টগুলি সরিয়ে ফেলা হয়। এটি পয়েন্টগুলির জন্য ঠিক আছে তবে আপনি নির্দিষ্ট রেঞ্জের সাথে ছেদ করে এমন লাইন প্লট করতে চাইতে পারেন তবে জিজিপ্লট rangeবাxlim/ylim পদ্ধতিগুলি এগুলি সরিয়ে দেয়। বহির্মুখী ডেটা না সরিয়ে প্লট অক্ষের পরিসর নির্দিষ্ট করার জন্য অন্য কোনও উপায় আছে?

যেমন

require(ggplot2)
d = data.frame(x=c(1,4,7,2,9,7), y=c(2,5,4,10,5,3), grp=c('a','a','b','b','c','c'))
ggplot(d, aes(x, y, group=grp)) + geom_line()
ggplot(d, aes(x, y, group=grp)) + geom_line() + scale_y_continuous(limits=c(0,7))
ggplot(d, aes(x, y, group=grp)) + geom_line() + ylim(0,7)

উত্তর:


168

হ্যাডলি পিপি। 99 এ ব্যাখ্যা করেছেন; তাঁর ggplot2 বইয়ের (প্রথম সংস্করণ) 133 বা পিপি 160 - 161 আপনার কাছে দ্বিতীয় সংস্করণ থাকলে

সমস্যাটি হ'ল আপনি যেমনটি বলেছেন, limitsস্কেলের ভিতরে বা সেটিংয়ের ylim()ফলে ডেটা ফেলে দেওয়া হয়, কারণ তারা ডেটা সীমাবদ্ধ করে চলেছে। সত্যিকারের জুমের জন্য (সমস্ত ডেটা রাখুন), আপনাকে কার্টেসিয়ান স্থানাঙ্ক ব্যবস্থার (বা অন্যান্য স্থানাংক সিস্টেম https://ggplot2.tidyverse.org/references/#section-coordinate-s সিস্টেমে ) এর সীমা নির্ধারণ করতে হবে । আরও দেখুন: http://docs.ggplot2.org/current/coord_cartesian.html

ggplot(d, aes(x, y, group=grp)) + 
    geom_line() + 
    coord_cartesian(ylim=c(0, 7))

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


2
যদি আমি ব্যবহার করি কারণ কোঅর্ড_কার্টেসিয়ান কোনও বিকল্প না হয় তবে কী হবে geom_boxplot?
Everettss

3
coord_cartesianএখনও geom_boxplotবা অন্য রত্নগুলির সাথে একটি বিকল্প ।
eipi10

হ্যাঁ, তবে অনুভূমিক বক্সপ্লটগুলি কীভাবে করবেন তা অনুধাবন coord_flipকরতে পারবেন না যেহেতু এটির প্রয়োজন এবং আপনার দুটি সমন্বয় থাকতে পারে না।
jtr13

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