3

集計データからバブル チャートを返す関数をコーディングしようとしています。

「agg」でdata.frameの列を渡しています。

aggs2 <- function(agg, deporur=0, all=TRUE){

  ##create aggregate from library data

  agg1 <- aggregate(agg, by=list(NoNA$IMD_NATIONAL_QUINTILE, NoNA$UR), 
                    FUN=function(x) c(mn=mean(x), n=length(x)))

  ##bind into a dataframe

  agg1 <- cbind(agg1[,1:2], agg1[,3])

  ##add column holding values of Deprivation Quantile and Urban/Rural status

  agg1$NewCol <- do.call(paste, c("Deprivation Quantile", agg1[c("Group.1", "Group.2")], 
                                  sep = " "))

  ##set column names

  colnames(agg1) <- c("Deprivation", "Urban and Rural", "Mean", "Count", "DepUR")

  ##remove categories with low counts

  if(all==FALSE){

    agg1 <- subset(agg1, agg1$Count > 9)

  }

  ##order data.frame by mean

  agg1 <- agg1[order(agg1$Mean, decreasing=TRUE),]

  ##create bubble chart
  if(deporur==1){

    radius3 <- sqrt(agg1$Count/pi)

    symbols(factor(agg1$DepUR), agg1$Mean, circles=radius3, inches=0.35, 
            xlim=c(0,10.0), ylim=c(min(agg1$Mean-0.25),10.0), fg="white", bg="purple",
            xlab="Deprivation Quantile and Urban/Rural Status", ylab="Mean Response")

    text(factor(agg1$DepUR), agg1$Mean-.1, agg1$DepUR, cex=0.7)
  }

  #return ordered dataframe
  agg1

}

これは、平均で並べ替えられた data.frame と、次のチャートを返します。

剥奪と都市/農村

この関数はさまざまなドキュメントや列からグラフを作成する必要があるため、ラベルがバブルや他のラベルと重ならないようにコーディングしたいと思います。

directlabels ライブラリを調べましたが、適切にコーディングする方法がわかりませんでした。

どんな援助でも大歓迎です。

4

1 に答える 1

0

他のラベルや他の円に関して、重複しないラベルの解決策を知りません。それにもかかわらず、wordcloud::textplot出発点になる可能性があります。

library(wordcloud)
set.seed(8)
df <- data.frame(x = runif(10), y = runif(10), size = sample(10:20, 10), lab = paste0("label", 1:10))
par(mfrow = c(1,2))
with(df, {
  plot(x, y, cex = size, pch = 19, col = adjustcolor("violet", alpha.f = .4), main = "non-overlapping")
  textplot(x, y, lab, new = FALSE, show.lines = FALSE, cex = 2)
  plot(x, y, cex = size, pch = 19, col = adjustcolor("violet", alpha.f = .4), main = "overlapping")
  text(x, y, lab, cex = 2)
})

ここに画像の説明を入力

于 2015-08-05T14:57:12.823 に答える