ggplot geom_text ফন্টের আকার নিয়ন্ত্রণ


93

আমি ggplot2এই জাতীয় কিছু করে আমার বার প্লটের লেবেলের জন্য ফন্টটি 10 ​​এ পরিবর্তন করার চেষ্টা করেছি :

ggplot(data=file,aes(x=V1,y=V3,fill=V2)) +
    geom_bar(stat="identity",position="dodge",colour="white") + 
    geom_text(aes(label=V2),position=position_dodge(width=0.9),
                                                 hjust=1.5,colour="white") +
    theme_bw()+theme(element_text(size=10))

ggsave(filename="barplot.pdf",width=4,height=4)

তবে ফলস্বরূপ চিত্রটিতে বার প্লট লেবেলের জন্য সুপার ফন্ট আকার রয়েছে।

তারপরে আমি এটি geom_text()দিয়ে পরিবর্তন করার কথা ভেবেছিলাম :

geom_text(size=10,aes(label=V2),position=position_dodge(width=0.9),
                                                   hjust=1.5,colour="white")

লেবেল ফন্টটি আরও বড় ...

আমি আকারটি geom_text3 এর মতো কিছুতে পরিবর্তন করতে পারি এবং এখন এটি অক্ষের লেবেলের অনুরূপ ফন্ট 10 এর মতো দেখাচ্ছে।

আমি ভাবছি কি হচ্ছে? নেই theme(text=element_text(size=10))লেবেল প্রযোজ্য নয়?

এবং কেন 10 এর আকার এর geom_text()চেয়ে আলাদা theme(text=element_text())?

উত্তর:


141

পাঠ্য / লেবেল আকার পরিবর্তন করার জন্য এখানে কয়েকটি বিকল্প রয়েছে

library(ggplot2)

# Example data using mtcars

a <- aggregate(mpg ~ vs + am , mtcars, function(i) round(mean(i)))

p <- ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + 
            geom_bar(stat="identity",position="dodge") + 
            geom_text(data = a, aes(label = mpg), 
                            position = position_dodge(width=0.9),  size=20)

sizeমধ্যে geom_textআকার পরিবর্তন geom_textলেবেলগুলি।

p <- p + theme(axis.text = element_text(size = 15)) # changes axis labels

p <- p + theme(axis.title = element_text(size = 25)) # change axis titles

p <- p + theme(text = element_text(size = 10)) # this will change all text size 
                                                             # (except geom_text)


এর জন্য এবং কেন জিওম টেক্সটে 10 এর আকার থিমের (পাঠ্য = উপাদান_টেক্সট ()) এর চেয়ে আলাদা?

হ্যাঁ, তারা আলাদা। আমি একটি দ্রুত ম্যানুয়াল চেক করেছি এবং তারা geom_textআকারগুলির themeমাপের জন্য ~ (14/5) এর অনুপাতে উপস্থিত রয়েছে ।

সুতরাং অভিন্ন আকারের জন্য একটি ভয়াবহ ফিক্সটি এই অনুপাত দ্বারা স্কেল করা

geom.text.size = 7
theme.size = (14/5) * geom.text.size

ggplot(mtcars, aes(factor(vs), y=mpg, fill=factor(am))) + 
  geom_bar(stat="identity",position="dodge") + 
  geom_text(data = a, aes(label = mpg), 
            position = position_dodge(width=0.9),  size=geom.text.size) + 
  theme(axis.text = element_text(size = theme.size, colour="black")) 

এটি অবশ্যই কেন ব্যাখ্যা করে না ? এবং একটি পিটা (এবং আমি এটি করার আরও বুদ্ধিমান উপায় আছে বলে ধরে নিই)


4
আকর্ষণীয়, 14/5 অনুপাতটি খুঁজে পেতে আপনি কী পরীক্ষা করেছেন?
ওলালা

34
আমি দেখি. আপনি আমাকে কিছুটা স্মরণ করিয়ে দিয়েছিলেন যা আমি সম্প্রতি পড়েছি, আমার ধারণা এটি ইউনিটগুলির মধ্যে পার্থক্য, 5 এর জিওম_টেক্সট ডিফল্ট 5 মিমি এবং থিম () আকারের এককটি পয়েন্ট। 1 পয়েন্টটি 1/72 ইঞ্চি = 0.35 মিমি, সুতরাং 1 জিম_সেক্সটায় () 1 মিমি, 1 / 0.35 = ~ 14/5 :)
ওলালা

4
agstudy এর উত্তর কেন বর্ণনা stackoverflow.com/questions/17311917/ggplot2-the-unit-of-size
user20650
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.