1

私はRを使用して、DBからデータを取得し、いくつかの優れたプロットを生成しています。特に、次のように円グラフを生成すると、次のことがわかります。

library(plotrix)
library(RODBC)
channel<-odbcConnect("MySql")
sqlQuery(channel,"use mydb")
res <-sqlQuery(channel, "SELECT categorystats.name categorystats.totalclick FROM categorystats")

png(filename="pie.png", width=800, height=800)

slices <- res$totalclick
lbls <- res$name
pct <- round(slices/sum(slices)*100)    
lbls <- paste(lbls, pct) # add percents to labels
lbls <- paste(lbls,"%",sep="") # add % to labels
pie3D(slices,labels = lbls,explode=0.1,main="Categorie di prodotti più visitate") 

dev.off()
odbcClose(channel)

次の円グラフを取得します。プロット

残念ながら、一部のラベルは画像内に表示されていません。

画像サイズに合った円グラフと関連ラベルを作成するために使用するそのようなコマンドが存在しますか?

4

1 に答える 1

2

再現可能な例がなければ、決定的な答えを提供することはできませんが、試してみるべきことがいくつかあります。

1) パイのサイズを縮小して、ラベル用のスペースを増やします。これを行うには、 への呼び出しに、たとえば、radius=0.8(または自分に合った値) を追加しますpie3D。それはおそらくあなたの問題を解決するのに十分でしょう。

2) 余白を調整して、ラベル用のスペースを増やすことができるかどうかを確認します。これを行うには、呼び出しに追加mar=c(bottom, left, top, right)pie3Dます。各値は、行数として指定された余白のサイズです。

3) ラベルはすでに少し小さいですがlabelcex=0.9、呼び出しに追加 (または任意の倍率) を追加することで、ラベルを小さくすることができpie3Dます。

labelpos4) 通話で使用して、ラベルの位置を操作することもできpie3Dます。のヘルプの例を試して、pie3Dこれがどのように機能するかを確認してください。

最後に、一方的なアドバイスをいくつか紹介します (「アドバイスは人生のエレベーター音楽です」と大学の学長は卒業式で私たちに言い、その後、たくさんのアドバイスをくれました): 円グラフはデータを表示する方法としては不適切です。 、異なるスライスの領域の違いを識別するのは難しいためです。パースペクティブ パイ チャートは、異なるスライスの相対的な領域を歪めることによって悪化するだけです。2D オブジェクトに 3D を追加すると、スライスの領域を比較することがさらに難しくなります。円グラフを使用する必要がある場合は、正面 (円形) の 2D 円グラフに切り替えることを検討してください。

于 2013-01-08T21:31:37.277 に答える