জিপিপ্লাটে লাইনের প্রস্থ কীভাবে পরিবর্তন করবেন?


127

ডেটালিঙ্ক: ব্যবহৃত ডেটা

আমার কোড:

ccfsisims <- read.csv(file = "F:/Purdue University/RA_Position/PhD_ResearchandDissert/PhD_Draft/GTAP-CGE/GTAP_NewAggDatabase/NewFiles/GTAP_ConsIndex.csv", header=TRUE, sep=",", na.string="NA", dec=".", strip.white=TRUE)
ccfsirsts <- as.data.frame(ccfsisims)
ccfsirsts[6:24] <- sapply(ccfsirsts[6:24],as.numeric)
ccfsirsts <- droplevels(ccfsirsts)
ccfsirsts <- transform(ccfsirsts,sres=factor(sres,levels=unique(sres)))

library(ggplot2)

#------------------------------------------------------------------------------------------
#### Plot of food security index for Morocco and Turkey by sector
#------------------------------------------------------------------------------------------

#_Code_Begin...

datamortur <- melt(ccfsirsts[ccfsirsts$region %in% c("TUR","MAR"), ]) # Selecting regions of interest
datamortur1 <- datamortur[datamortur$variable %in% c("pFSI2"), ] # Selecting the food security index of interest
datamortur2 <- datamortur1[datamortur1$sector %in% c("wht","gro","VegtFrut","osd","OthCrop","VegtOil","XPrFood"), ] # Selecting food sectors of interest
datamortur3 <- subset(datamortur2, tradlib !="BASEDATA") # Eliminating the "BASEDATA" scenario results  

allfsi.f <- datamortur3
fsi.wht <- allfsi.f[allfsi.f$sector %in% c("wht"), ]

Figure29 <- ggplot(data=fsi.wht, aes(x=factor(sres),y=value,colour=factor(tradlib)))
Figure29 + geom_line(aes(group=factor(tradlib),size=2)) + facet_grid(regionsFull~., scales="free_y", labeller=reg_labeller) + scale_colour_brewer(type = "div") +
theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 13, hjust = 0.5, vjust = 0.5),axis.title.x=element_blank()) + 
ylab("FSI (%Change)") + theme(axis.text.y = element_text(colour = 'black', size = 12), axis.title.y = element_text(size = 12, hjust = 0.5, vjust = 0.2)) + 
theme(strip.text.y = element_text(size = 11, hjust = 0.5, vjust = 0.5, face = 'bold'))

আমার ফলাফল: Result_Figure

এেস সহ নিউরেসাল্ট (আকার = 2): NewResult-চিত্র

আমার প্রশ্ন: দ্বিতীয় চক্রান্তের ফলাফল এড়াতে লাইন প্রস্থের আরও সঠিকভাবে নিয়ন্ত্রণ করার কোনও উপায় আছে কি? আমি বিশেষত এটি নথিবদ্ধ-বন্ধুত্বপূর্ণভাবে খুঁজে পাই এবং আরও অনেক কিছুর জন্য নতুন সংজ্ঞায়িত লাইন প্রস্থের সাথে প্লটটি অন্তর্ভুক্ত করার উদ্দেশ্যে প্রকাশ করার উদ্দেশ্যে।

সেরা, ইসমাইল


9
লাইনের প্রস্থ পরিবর্তন করতে, কেবল জুম_লাইন () তে যুক্তির আকার = 2 যুক্ত করুন।
ডিডজিস এলফার্টস

3
মাত্র কিছু পরীক্ষা-নিরীক্ষা করেছেন এবং দেখে মনে হচ্ছে আকার 1 টি অবিচ্ছেদ্য মানগুলি গ্রহণ করতে হবে না কারণ আপনি 1 এবং 2 ব্যবহার করছেন I আমি সবে 1.5 তে প্রবেশ করেছি এবং এর মধ্যে কিছু পেয়েছি। আমি নিশ্চিত নই যে এর মতো একটি নির্দিষ্ট মান সব পরিস্থিতিতে আপনার জন্য কাজ করবে তবে এটি কমপক্ষে সুরক্ষিত প্রদর্শিত হবে।
jxramos

উত্তর:


127

@ ডিডজিসের সঠিক উত্তর থাকলেও আমি কয়েকটি পয়েন্টে প্রসারিত করব

একটি জিপিপ্লট কলের মধ্যে নান্দনিকতা সেট বা ম্যাপ করা যায়।

  • Aes (...) এর মধ্যে সংজ্ঞায়িত একটি নান্দনিক তথ্য থেকে ম্যাপ করা হয় এবং একটি কিংবদন্তি তৈরি করা হয়।

  • একটি নান্দনিকতা এএস এর বাইরে () এর সংজ্ঞা দিয়ে কোনও মানকেও সেট করা যেতে পারে।

আমি যতদূর বলতে পারি, আপনি যা চান তা হ'ল একক মানকে আকার নির্ধারণ করুন , কল করার মধ্যে ম্যাপ নয়aes()

আপনি যখন কল করেন তখন aes(size = 2)এটি একটি পরিবর্তিত কল হিসাবে `2`তৈরি করে এবং আকারটি তৈরি করতে এটি ব্যবহার করে, ধ্রুবক মান থেকে ম্যাপিং এটির কল হিসাবে হয় aes(সুতরাং এটি আপনার কিংবদন্তিতে প্রদর্শিত হয়)।

আকার = 1 ব্যবহার করা (এবং এটি ছাড়া reg_labellerসম্ভবত আপনার স্ক্রিপ্টের কোথাও সংজ্ঞায়িত করা হয়েছে)

Figure29 +
    geom_line(aes(group=factor(tradlib)),size=1) +
    facet_grid(regionsFull~., scales="free_y") +
    scale_colour_brewer(type = "div") +
    theme(axis.text.x = element_text(
          colour = 'black', angle = 90, size = 13,
          hjust = 0.5, vjust = 0.5),axis.title.x=element_blank()) +
    ylab("FSI (%Change)") +
    theme(axis.text.y = element_text(colour = 'black', size = 12), 
          axis.title.y = element_text(size = 12, 
          hjust = 0.5, vjust = 0.2)) + 
    theme(strip.text.y = element_text(size = 11, hjust = 0.5,
          vjust =    0.5, face = 'bold'))

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

এবং আকার = 2 দিয়ে

 Figure29 + 
     geom_line(aes(group=factor(tradlib)),size=2) +
     facet_grid(regionsFull~., scales="free_y") + 
     scale_colour_brewer(type = "div") +
     theme(axis.text.x = element_text(colour = 'black', angle = 90,
          size = 13, hjust = 0.5, vjust = 
          0.5),axis.title.x=element_blank()) + 
     ylab("FSI (%Change)") +
     theme(axis.text.y = element_text(colour = 'black', size = 12),
          axis.title.y = element_text(size = 12,
          hjust = 0.5, vjust = 0.2)) + 
      theme(strip.text.y = element_text(size = 11, hjust = 0.5,
          vjust = 0.5, face = 'bold'))

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

আপনি এখন চূড়ান্ত চিত্রের আকার এবং ডিভাইসের ধরণের সাথে যথাযথভাবে কাজ করতে আকারটিকে সংজ্ঞায়িত করতে পারেন।


71

লাইন প্রস্থ ggplot2আর্গুমেন্ট সহ পরিবর্তন করা যাবে size=মধ্যে geom_line()

#sample data
df<-data.frame(x=rnorm(100),y=rnorm(100))
ggplot(df,aes(x=x,y=y))+geom_line(size=2)

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


2
আমি ইতিমধ্যে আপনার বিকল্পটি ব্যবহার করে দেখেছি, তবে সমস্যাটি হ'ল ডকুমেন্ট-বান্ধব হিসাবে বিবেচনা করার জন্য লাইনটি খুব ঘন হয়ে গেছে। আইস (আকার) ব্যবহার করার সময়, আমি যুক্ত করা দ্বিতীয় গ্রাফটি পাই। আমি আরও সুশৃঙ্খল উপায়ে প্রস্থের জন্য নিয়ন্ত্রণ করতে সক্ষম হতে চাই যাতে সেরা ফিটটি বেছে নিতে পারে।
iouraich

8
@ smailov83, কল করার জন্য আকারটি রাখবেন না aes। আমার উত্তরটি দেখুন (বা ggplot2ব্যাখ্যার জন্য বইটি
মেল

6
ডিফল্ট মানটি size=1সম্ভবত এর চেয়ে কম বলে মনে হচ্ছে 0.5, তাই size=1ফলদ ব্যবহার করে আমার মতে বেশ ভাল ফলাফল। প্রস্থের সূক্ষ্ম সুরতে (বলুন size=1.2) দশমিক সংখ্যাও ব্যবহার করতে পারেন ।
রিকার্ডো

5

লাইন প্রস্থ ggplot2আর্গুমেন্ট সহ পরিবর্তন করা যাবে lwd=মধ্যে geom_line()

geom_line(aes(x=..., y=..., color=...), lwd=1.5)

3

আপনি যদি লাইন প্রস্থকে নমনীয়ভাবে সংশোধন করতে চান তবে আপনি "স্কেল_সাইজ_মানুয়াল" ব্যবহার করতে পারেন, রঙ বাছাই করার জন্য এটি একই পদ্ধতি, ফিল, আলফা ইত্যাদি is

library(ggplot2)
library(tidyr)

x = seq(0,10,0.05)

df <- data.frame(A = 2 * x + 10,
                 B = x**2 - x*6,
                 C = 30 - x**1.5,
                 X = x)


df = gather(df,A,B,C,key="Model",value="Y")


ggplot( df, aes (x=X, y=Y, size=Model, colour=Model ))+
  geom_line()+
  scale_size_manual( values = c(4,2,1) ) +
  scale_color_manual( values = c("orange","red","navy") ) 

3

এটির মতো দেখে মনে হচ্ছে আপনি যদি sizeযুক্তিটি কেবল geom_line()অংশে রাখেন তবে এটি ছাড়াই aes()এটি যথাযথভাবে স্কেল হবে। অন্তত এটির সাথে এইভাবে কাজ করে geom_densityএবং আমারও একই সমস্যা ছিল।

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