R: 二酸化炭素放出量のグラフ

いずれ気候変動についての書き込みをまとめたいと思いますが、CO2放出量のグラフの描き方をメモしておきます。

データは、DATA HUBの次のページです。

 

CO2 Emissions from Fossil Fuels since 1751, By Nation

 

Datahubについては、以前に紹介しました。

 

Python&R: 総合データサイトDatahubの使用法, R

 

Datahubの便利なところは、プログラムでデータを取得できるようにPythonやRなどのスクリプトが提供されているところでです。CSVファイルもダウンロードできますが、基本的に、プログラムで解析することを前提としてデータを提供しているところです。

Rについては、JavaScriptのデータを取得する式が書かれていますが、はじめから、tibbleで取得したいので、今回はCSVを読み込みました。

 

library(tidyverse)
# install the data
df0 <- read_cs.('https://pkgstore.datahub.io/core/co2-fossil-by-nation/fossil-fuel-co2-emissions-by-nation_csv/data/0f04181960a0a896ebaf6d8afb0b71a6/fossil-fuel-co2-emissions-by-nation_csv.csv') df0 # select the data df0 %>%
select(Year, Country, Total) %>%
filter(Year == 2014, Total > 150000) -> df0_selected1
# create a bar plot
p<-ggplot(df0_selected1, aes(x = Country, y=Total, fill=Country)) +
geom_bar(stat = "identity")
p
 

ggplot2でグラフを描く標準的な式で、簡単に次のようなグラフを作成できました。

しかし、このままではグラフがわかりにくいので、次の点を修正したいです。

 

 

日本のことを伝えたいなら、次のようにしてはどうでしょう。

以前描いたことがあるグラフですが、すっかり忘れていて、思い出すのに苦労しました。

 

  1. グラフのバーの色を2色にするために、データにmutate()を使ってID列を加えています。ifelse()を使って、「JAPAN」だけ「TRUE」で、他は「FALSE」といれました。この文字列は区別できればなんでもよいです。
  2. 棒グラフを水平にするのは、「coord_flip()」です。
  3. 降順に並べるのは、「aes(reorder(列名, 基準にする数値列名)」です。昇順にするのは、「基準にする数値列名」と、前に「-」をいれます。
  4. 凡例(はんれい)を削除してgrid線を削除するのに、theme_minimal()+theme(legend . . .)としましたが、もっと簡潔な書き方があるかもしれません。

 

df0 <- read_cs.('https://pkgstore.datahub.io/core/co2-fossil-by-nation/fossil-fuel-co2-emissions-by-nation_csv/data/0f04181960a0a896ebaf6d8afb0b71a6/fossil-fuel-co2-emissions-by-nation_csv.csv')
df0
df0 %>% 
  select(Year, Country, Total) %>%
  filter(Year == 2014, Total > 150000) %>% 
  mutate(Country, ID = ifelse(Country =="JAPAN", TRUE, FALSE)) -> df0_selected
df0_selected

p2<-ggplot(df0_selected, aes(reorder(Country, Total), Total, fill=ID)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  scale_fill_manual(values = c("grey90", "dodgerblue")) +
  annotate("text", x="JAPAN", y =150000, label ="日本", 
           color ="white", size=6, family="HiraKakuPro-W3") +
  ggtitle("Countries by carbon emission in 2014 (with >150000)") +
  labs(x="Country", y="emission") +
  theme_minimal() +
  theme(legend.position = "none", 
        plot.background = element_blank(),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.border = element_blank()) +
  theme(plot.title = element_text(size=20, face="bold"),
        text = element_text(size=20),
        axis.text.x = element_text(size=18))
p2

 

 

Please follow and like us:
error

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.