#【データフレームの作成】
# カラム(列)u,v,wを持つデータフレームを作成する。 
d <- data.frame(
  イカ = c(10, 20, 30),
  タコ = c(40, 80, 90),
  マグロ = c(20, 50, 40))

#【レコード名(行名)の作成】
# ISO形式("yyyy-mm-dd")で開始日,終了日を作成し,
# 時間オブジェクトに変換(as.POSIXct)する。
# 数列作成関数seqを使って日付を作成する。
# 増分(by)は月単位("month")とする。
px <- seq(as.POSIXct("2023-01-01"),
          as.POSIXct("2023-03-01"), by = "month")

# 作成した日付をレコード名(行名)にする。
rownames(d) <- px

# 作成したデータフレームを表形式で表示する。
library(kableExtra)
kable(d) |> kable_classic("striped", full_width = F)
イカ| コ| マグ
2023-01-01 10 40 20
2023-02-01 20 80 50
2023-03-01 30 90 40
# Pythonグラフ用にデータをCSVファイル形式で保存しておく。
# (オプションquote = Fで文字列に””を付けない)
write.csv(d, file = "barplot_py.csv", quote = F)


# カラーパレット
COL <- c(rgb(255,   0, 255,  55, max = 255), # ピンク
         rgb(  0,   0, 255,  55, max = 255), # ラベンダー
         rgb(  0, 255,   0,  55, max = 255)) # ライトグリーン

# 棒グラフ(barplot)関数は行列(matrix)を引数にとるので
# データフレームを行列に変換する。
m <- as.matrix(d)

i <- 2 # 行番号

# 作図
barplot(m[i, ], col = COL[2],
        main = "寿司屋ネタ別注文数(2月)",
        xlab = "ネタ名",
        ylab = "注文数[単位:百皿]")

# 格子線
abline(h = seq(0, 100, 5), lty = 2, col = gray(0.5, 0.25))

#積上棒グラフ


# 作図
barplot(m, col = COL,
        main = "寿司屋ネタ別注文数(単位:百皿)",
        xlab = "ネタ名",
        ylab = "注文数[単位:百皿]")

# 格子線
abline(h = seq(0, 300, 50), lty = 2, col = gray(0.5, 0.25))

# 凡例
legend("topleft", fill = COL, legend = rownames(m))

#集合棒グラフ

# 作図
# オプションbeside = Tで集合棒グラフになる。
barplot(m, col = COL, beside = T,
        main = "寿司屋ネタ別注文数(単位:百皿)",
        xlab = "ネタ名",
        ylab = "注文数[単位:百皿]")

# 格子線
abline(h = seq(0, 100, 20), lty = 2, col = gray(0.5, 0.25))

# 凡例
legend("topleft", fill = COL, legend = rownames(m))