我有一個包含12個變量的圖形,分爲兩組。我不能使用方面,但使用顏色和形狀,我能夠使可視化易於理解。但是,有些重疊(部分或全部)。我使用抖動來處理這些問題,但正如您從附圖中看到的那樣,這會導致所有點被移動,而不僅僅是那些有重疊的點。 使用geom_point有條件使用ggplot2中的抖動
有沒有一種方法可以有條件地使用抖動或閃避?更妙的是,有沒有辦法將部分重疊的點並排放置?正如你所看到的,我的X軸是離散的類別,稍微向左/右移動並不重要。我試圖用binaxis='y'
使用dotplot,但是這完全破壞了x軸。
編輯:This graph已經成功地做了我正在尋找的東西。
進一步編輯:添加此可視化背後的代碼。
disciplines <- c("Comp. Sc.\n(17.2%)", "Physics\n(19.6%)", "Maths\n(29.4%)", "Pol.Sc.\n(40.4%)", "Psychology\n(69.8%)")
# To stop ggplot from imposing alphabetical ordering on x-axis
disciplines <- factor(disciplines, levels=disciplines, ordered=T)
# involved aspects
intensive <- c(0.660, 0.438, 0.515, 0.028, 0.443)
comparative <- c(0.361, 0.928, 0.270, 0.285, 0.311)
wh_adverbs <- c(0.431, 0.454, 0.069, 0.330, 0.577)
past_tense <- c(0.334, 0.229, 0.668, 0.566, 0.838)
present_tense <- c(0.680, 0.408, 0.432, 0.009, 0.996)
conjunctions <- c(0.928, 0.207, 0.162, -0.299, -0.045)
personal <- c(0.498, 0.521, 0.332, 0.01, 0.01)
interrogative <- c(0.266, 0.202, 0.236, 0.02, 0.02)
sbj_objective <- c(0.913, 0.755, 0.863, 0.803, 0.913)
possessive <- c(0.896, 0.802, 0.960, 0.611, 0.994)
thrd_person <- c(-0.244, -0.265, -0.310, -0.008, -0.384)
nouns <- c(-0.602, -0.519, -0.388, -0.244, -0.196)
df1 <- data.frame(disciplines,
"Intensive Adverbs"=intensive,
"Comparative Adverbs"=comparative,
"Wh-adverbs (WRB)"=wh_adverbs,
"Verb: Past Tense"=past_tense,
"Verb: Present Tense"=present_tense,
"Conjunctions"=conjunctions,
"Personal Pronouns"=personal,
"Interrogative Pronouns"=interrogative,
"Subjective/Objective Pronouns"=sbj_objective,
"Possessive Pronouns"=possessive,
"3rd-person verbs"=thrd_person,
"Nouns"=nouns,
check.names=F)
df1.m <- melt(df1)
grp <- ifelse(df1.m$variable %in% c('3rd-person verbs','Nouns'), 'Informational Features', 'Involved Features')
g <- ggplot(df1.m, aes(group=grp, disciplines, value, shape=grp, colour=variable))
g <- g + geom_hline(yintercept=0, size=9, color="white")
g <- g + geom_smooth(method=loess, span=0.75, level=0.95, alpha=I(0.16), linetype="dashed")
g <- g + geom_point(size=4, alpha=I(0.7), position=position_jitter(width=0.1, height=0))
g <- g + scale_shape_manual(values=c(17,19))
你應該提供一個可重複的例子(數據+代碼),讓別人用它玩... – agstudy
添加的代碼。希望這有助於:-) –
感謝您的代碼。附:您的繪圖看起來不像生物醫學示例那樣乾淨,因爲您的Y值遍佈整個地方,但您仍然可以按照下面的的順序排列x值。 –
beroe