R中基于表格的饼图

R中基于表格的饼图,r,pie-chart,R,Pie Chart,我想画一个饼图来代表4个人,每个人在3个类别中有不同的值 Name X Y Z Bill 120 280 600 John 140 360 500 Johana 150 700 150 Tim 200 600

我想画一个饼图来代表4个人,每个人在3个类别中有不同的值

Name           X            Y                Z
Bill          120         280               600
John          140         360               500 
Johana        150         700               150
Tim           200         600               200

我想做的是将一个饼图分成4个相等的区域(Bill、John、Johana、Tim),每个区域根据X、Y、Z的值进行分割。我试图根据表绘制R中的值,但不幸的是,它不起作用。有谁能给我一个如何在R中实现这一点的指导吗?

您需要重新调整数据以满足您的需要。使用
重塑
包创建“融化”数据框:

df <- data.frame(
  name=c('Bill','John','Johana','Tim'),
  x = c(120,140,150,200),
  y = c(280,360,700,600),
  z = c(600,500,150,200)
)

library(reshape)
df2 <- sort_df(
         melt(df, id='name')
         , vars=c('name','variable')
       )
pie(df2$value) # ONLY take the value column to create the chart.
sort_df()
函数只需按名称和变量对条目进行排序:

sort_df(melt(df, id='name'), vars=c('name','variable'))
     name variable value
1    Bill        x   120
5    Bill        y   280
9    Bill        z   600
3  Johana        x   150
7  Johana        y   700
11 Johana        z   150
2    John        x   140
6    John        y   360
10   John        z   500
4     Tim        x   200
8     Tim        y   600
12    Tim        z   200
剩下的就是画馅饼了。对于所有名称,每个名称的值之和为1000,因此不需要重新缩放这些值。如果每个名称的总和不同,我留给您如何重新缩放值


参考文献:


所以你想打印12张,每个名字3张?以适当的顺序创建一个包含12行的数据框,并绘制图表,但它不起作用。我尝试使用data.frame,值为正值。然而,我有一个问题,“X值必须是正的”。整个data.frame是带有std(df)的数字,其中df是data.frame,请参见下面的答案。您需要创建一个“融化”的数据框,并使用这些值创建饼图
sort_df(melt(df, id='name'), vars=c('name','variable'))
     name variable value
1    Bill        x   120
5    Bill        y   280
9    Bill        z   600
3  Johana        x   150
7  Johana        y   700
11 Johana        z   150
2    John        x   140
6    John        y   360
10   John        z   500
4     Tim        x   200
8     Tim        y   600
12    Tim        z   200