質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

1回答

1258閲覧

色分け、積み上げ型横棒グラフを描こうとサイトを参考にしたが、そのままコピペしてもエラー。

ques346

総合スコア47

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2021/08/14 18:38

https://m-kiyota.jimdofree.com/%E3%83%87%E3%83%BC%E3%82%BF%E8%A7%A3%E6%9E%90/r%E3%81%A8%E3%83%87%E3%83%BC%E3%82%BF%E8%A7%A3%E6%9E%90%E3%81%AE%E3%83%A1%E3%83%A2/r%E3%81%AE%E7%A9%8D%E3%81%BF%E9%87%8D%E3%81%AD%E3%82%B0%E3%83%A9%E3%83%95/

このページを参考に、

R

1# ===== データを作る ===== 2# 1列目がX変数,2列目以降に複数のY変数が重なるデータ 3x <- 2001:2010 4y1 <- c(100,120,110, 90, 80, 70, 50, 60, 50, 30) 5y2 <- c(60, 70, 80, 50, 70, 40, 30, 50, 20, 30) 6y3 <- c(60, 20, 30, 10, 20, 5, 10, 4, 6, 3) 7y4 <- c(50, 40, 50, 30, 40, 30, 10, 20, 10, 20) 8y5 <- c(10, 20, 40, 30, 20, 50, 70, 50, 60, 70) 9xyy <- data.frame(X=x, Y1=y1, Y2=y2, Y3=y3, Y4=y4, Y5=y5) 10write.csv(xyy, "stackedXYY.csv", row.names=FALSE) 11 12# データを読み込む 13XYY <- read.csv("stackedXYY.csv") 14 15# XとYを別のオブジェクトに分ける 16X <- XYY$X 17rownames(XYY) <- X 18YY <- XYY[,-1] 19 20 21# ===== barplot()を使った積み重ね棒グラフ ===== 22 23 24 25tYY <- as.matrix(t(YY)) 26barplot(tYY) # 白黒 27barplot(tYY, col=terrain.colors(nrow(tYY))) 28legend("topright", rev(colnames(YY)), col=palette[1:ncol(YY)], pch=15) 29 30 31barplot(tYY, col=terrain.colors(nrow(tYY)), space=0) # 棒間隔ゼロ 32barplot(tYY, col=terrain.colors(nrow(tYY)), space=0, border=F) # 輪郭線なし

と、そのまま、barplotバージョンのコードを使って出力したのですが、エラーが出ます。

barplot(tYY, col=terrain.colors(nrow(tYY)), space=0) # 棒間隔ゼロ

Error in plot.new() : figure margins too large

barplot(tYY, col=terrain.colors(nrow(tYY)), space=0, border=F) # 輪郭線なし

Error in plot.new() : figure margins too large

tYY <- as.matrix(t(YY))
barplot(tYY) # 白黒

Error in plot.new() : figure margins too large

barplot(tYY, col=terrain.colors(nrow(tYY)))

Error in plot.new() : figure margins too large

legend("topright", rev(colnames(YY)), col=palette[1:ncol(YY)], pch=15)

Error in strwidth(legend, units = "user", cex = cex, font = text.font) :
plot.new has not been called yet

figure margins too large
とのことです、そのまま書いたのに、なぜtoo largeになるんでしょうか、また、
数値や数値の個数は自由に変更して良いので、どのように変更すれば良いでしょうか?
色分け、積み上げ型横棒グラフを描きたいのです(とりあえず縦棒でもOK

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

描画エリアが狭すぎるのです。

出力先がファイルならファイルの縦横の長さを長く設定。画面に表示したいなら、dev.new()で新しい描画用ウィンドウを開き、マウス操作で大きくしてからplotしてみよう。

投稿2021/08/14 19:18

KojiDoi

総合スコア13692

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ques346

2021/08/14 19:37

全てコマンドで行いたいのですが、このコードの通りでれば、 barplotなので、画面表示になるんですかね? 他サイトのコード、 png("image.png", width = 500, height = 300, pointsize = 12, bg = "white") barplot(sweep(m, 2, 100 / colSums(m), "*"), col=c("red", "blue")) graphics.off() というのがあるんですが、こんな風にあらかじめpngしてbarplotしてoffすればいいんですかね?
KojiDoi

2021/08/15 07:46

前から言われていると思うけど、「すればいいんじゃないかね」じゃなくて、まず君がやって見るんだよ。エラーが出たらサイズを大きく設定し直せと言ってるだろうが。何度同じこと言わせんだよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問