R 包含正值的饼图问题

R 包含正值的饼图问题,r,pie-chart,R,Pie Chart,我正在尝试创建一个饼图。以下是一些数据: tst1 tst2 tst34 13.3 2.3 0.0 70.2 4.5 1.2 1.3 5.2 3.3 我尝试了以下代码: df_pie <- df %>% select("tst1", "tst2", "tst34") df_pie$tst1 <- as.numeric(df_pie$tst1) df_pie$tst2 <- as.numeric

我正在尝试创建一个饼图。以下是一些数据:

tst1  tst2 tst34
13.3  2.3  0.0
70.2  4.5  1.2
1.3   5.2  3.3

我尝试了以下代码:

df_pie <- df %>% select("tst1", "tst2", "tst34")
df_pie$tst1 <- as.numeric(df_pie$tst1)
df_pie$tst2 <- as.numeric(df_pie$tst2)
df_pie$tst34 <- as.numeric(df_pie$tst34)
lbls <- c("Stage 1", "Stage 2", "Stage 3")
pie(df_pie, labels = lbls, main="Pie Chart")

我读过一些文章,人们以前就有过这个问题。我已检查数据是否为正数和数字。有人能帮忙吗?

饼图中的
x
只接受一个正的
向量
作为输入,而不是
数据框
。根据
?pie

x-非负数值量的向量。x中的值显示为饼图切片的区域

这里有一个带有
pmap
的选项,可以在每一行上循环

library(purrr)
par(mfrow = c(2, 2))

lst1 <- pmap(df_pie, ~ pie(c(...), labels = lbls, 
       main = 'Percent of Time in each Sleep Stage'))
-输出


或使用
应用

par(mfrow = c(2, 2))
lst1 <- apply(df_pie, 1, function(x) pie(x, labels = lbls, 
         main = 'Percent of Time in each Sleep Stage'))
par(mfrow=c(2,2))

lst1
pie
中的
x
非负数值量的向量。x中的值显示为饼图切片的区域。
x
饼图中的值应为矢量,特别是“非负数值的矢量”。你想如何绘制数据帧?哦,我现在明白了。如果我想绘制每个变量的平均值,我可以做如下操作:x谢谢@akrun!你能解释一下为什么输出3个不同的饼图而不是1个吗?@D.Fowler第一个饼图在各行上循环,你显示的数据中有3行。根据您的评论,您需要每个列的平均值。因此,第二个代码块将帮助您感谢@akrun。这非常有用。在R中,我的饼图看起来很小。您是否立即知道如何使它看起来更大(即,像您的一样)?@D.Fowler可能是您使用的
par
。在新的会话中尝试或更改
par(mfrow=c(1,1))
pie(colMeans(df_pie), labels = lbls, 
           main = 'Percent of Time in each Sleep Stage')
par(mfrow = c(2, 2))
lst1 <- apply(df_pie, 1, function(x) pie(x, labels = lbls, 
         main = 'Percent of Time in each Sleep Stage'))
df_pie <- structure(list(tst1 = c(13.3, 70.2, 1.3), tst2 = c(2.3, 4.5, 
5.2), tst34 = c(0, 1.2, 3.3)), class = "data.frame", row.names = c(NA, 
-3L))