web-dev-qa-db-ja.com

ラベルggplot棒グラフに小数点以下の桁数を正確に設定する方法

ggplot棒グラフラベルの小数点以下の桁数を正確に指定するにはどうすればよいですか?

データ:

_strefa  <- c(1:13)
a       <- c(3.453782,3.295082,3.137755,3.333333,3.500000,3.351351,3.458824,3.318681,3.694175,3.241379,3.138298,3.309524,3.380000)
srednie <- data.frame(strefa,a)
_

コードは次のとおりです。

_ggplot(srednie, aes(x=factor(strefa), y=a, label=round(a, digits = 2))) +
  geom_bar(position=position_dodge(), stat="identity",  colour="darkgrey", width = 0.5) +
  theme(legend.position="none",axis.text.x = element_blank(), axis.ticks.x = element_blank(), axis.ticks.y = element_blank()) +
  geom_text(size = 4, hjust = 1.2) +
  coord_flip(ylim = c(1,6))+
  xlab("") +
  ylab("")
_

ご覧のとおり、5および2というタイトルのバーでは、ラベルは小数点第1位までに制限されています。 3.000000または5.9999999がある場合でも、小数点以下2桁を表示するにはどうすればよいですか?そのような場合、3.00と6.00を表示したいと思います。

aesパラメーターlabel=round(a, digits = 2)として使用しようとしましたが、機能しません。

14
Maciej B.

以下を試してみてください。2桁に丸められ、小数点以下2桁が出力されます。

ggplot(srednie, aes(x=factor(strefa), y=a, label=sprintf("%0.2f", round(a, digits = 2)))) +
  geom_bar(position=position_dodge(), stat="identity",  colour="darkgrey", width = 0.5) +
  theme(legend.position="none",axis.text.x = element_blank(), axis.ticks.x = element_blank(), axis.ticks.y = element_blank()) +
  geom_text(size = 4, hjust = 1.2) +
  coord_flip(ylim = c(1,6))+
  xlab("") +
  ylab("")

唯一の変更は、コードを

round(a, digits = 2)

sprintf("%0.2f", round(a, digits = 2))

enter image description here

21
steveb