R中基于表格的饼图
我想画一个饼图来代表4个人,每个人在3个类别中有不同的值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
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