0

X=Type、Y=Cost の 2 つの列で構成される小さなデータ フレーム DF があります。各タイプの棒グラフとそのコストをグラフ化したい。私はそれを行うことができましたが、barplot でより良いプレゼンテーションを探しています。私の要件を満たすと思われる3つの問題があります。

1) 各タイプの X 軸テキストが長いため、45 度で作成しました。省略してみましたが、読めませんでした!!!

2) 色の代わりに、ggplot で塗りつぶしパターン/テクスチャを使用しようとしましたが、Hadley では不可能であることがわかりました:塗りつぶしパターン

白黒印刷の場合にプロットを読みやすくする方法はありますか?

3) 「タイプ」カテゴリの 1 つに焦点を当てる方法があるかどうか疑問に思っています。つまり、この特別なタイプに目を引くために太字で特別な色にします。たとえば、「その他」の結果を他とは異なるものにしたいと考えています。

私は自分の考えを試しましたが、グラフを再設計することは完全にオープンです。助言がありますか

ここにデータがあります-私はdputコマンドを使用しました:

structure(list(Type = structure(c(6L, 8L, 7L, 9L, 10L, 15L, 11L, 
17L, 3L, 16L, 5L, 19L, 4L, 14L, 2L, 18L, 13L, 1L, 12L), .Label = c("Backup Hardware ", 
"data or network control", "Email exchange server/policy", "Instant messaging control", 
"Login/system administrators/privilage", "Machine A", "Machine A with Software and   Camera", 
 "Machine A without Software", "Machine B", "Machine B without RAM and CD ROM", 
"Managment analyses software ", "Other", "Password and security", 
"public web application availability", "Software for backup", 
"System access by employees ", "Telecom and Harware", "Web site update", 
"wireless network access ponits"), class = "factor"), Cost = structure(c(4L, 
3L, 15L, 13L, 11L, 7L, 2L, 1L, 19L, 16L, 14L, 12L, 10L, 9L, 8L, 
6L, 5L, 17L, 18L), .Label = c("$1,292,312", "$1,888,810", "$11,117,200", 
"$14,391,580", "$161,210", "$182,500", "$2,145,900", "$250,000", 
"$270,500", "$298,810", "$3,452,010", "$449,001", "$6,034,000", 
"$621,710", "$7,642,660", "$700,000", "$85,100", "$885,000", 
"$923,700"), class = "factor")), .Names = c("Type", "Cost"), class = "data.frame",   row.names = c(NA, 
-19L))

ここにRの私のコードがあります:

p<- ggplot(data = DF, aes(x=Type, y=Cost)) + 
 geom_bar(aes(fill=Type),stat="identity") + 
 geom_line()+
scale_x_discrete (name="Type")+
scale_y_discrete(name="Cost")+
theme(axis.text.x = element_text(colour="black",size=11,face="bold")) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
labs(fill=expression(paste("Type of study\n")))

print(p)
4

1 に答える 1

4

プロットの開始点は次のとおりです。

1)最初に、変数Costを因子から数値に変換し、名前を付けましたCost2

DF$Cost2<-as.numeric(gsub("[^0-9]", "",DF$Cost))

2) を使用してプロットをグレースケールに変換しました- ここでは、黒scale_fill_manual()のバーを除いてすべてのバーがグレーです。y 軸の値を再びドルとして作成します (Otherこれには library を追加する必要があります)。x 軸のラベルを太字にし、他のラベルを通常にするには、レベル数と同じ長さのベクトル (すべてのレベルでは 1、レベルでは 2) を内部に引数として指定する必要があります。scale_y_continuous()labels=dollarscalesOtherface=theme() axis.text.x=Other

library(scales)
ggplot(data = DF, aes(x=Type, y=Cost2)) + 
  geom_bar(aes(fill=Type),stat="identity",show_guide=FALSE) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1,
                                   face=(as.numeric(levels(DF$Type)=="Other") + 1)))+
  scale_y_continuous(labels=dollar)+
  scale_fill_manual(values=c("grey43","black")[as.numeric(levels(DF$Type)=="Other")+1])

ここに画像の説明を入力

于 2013-11-12T18:41:00.287 に答える