Первое: когда вы перемещаете данные с помощью t(x)
, вы конвертируете все в character
. Это потому, что t
возвращает matrix
, а не data.frame
. Все в матрице должно быть одного и того же класса, поэтому найден общий класс и выполнены преобразования: character > numeric > integer > logical
(или меньше, по вашему выбору), где, если есть один символ (или factor
) столбец, тогда все преобразуется.
Если вы действительно хотите одно изображение для каждой строки, то что-то вроде этого может сработать.
Сначала некоторые данные:
x <- read.csv(header=TRUE, check.names=FALSE, text = "
,Reads used in Clonotypes,Unsuccessful Reads,Not used for Clonotypes
012-915-8-rep1,0.772143599,0.153575355,0.074281045
012-915-8-rep2,0.888258155,0.043600206,0.068141639
012-915-8-rep3,0.856428962,0.046993738,0.0965773
012-915-8-rep4,0.873364731,0.05249563,0.074139639")
colnames(x)[1] <- "Sample"
И петля. Я закомментировал код jpeg / dev.off для локальной демонстрации. Я также добавил цвет (NA
без цвета), так как я предполагаю, что вы хотели, чтобы все три столбца были показаны на круговой диаграмме. Отрегулируйте, если я ошибаюсь.
for (i in seq_len(nrow(x))) {
fn <- paste0(x$Sample[i], ".jpg")
# jpeg(file = fn)
pie(unlist(x[i,-1]), col = c(NA, "darkred", "pink"),
main = x$Sample[i])
legend("bottomleft", sprintf("%0.1f%% - %s", 100*x[i,-1], names(x[i,-1])), bty='n')
# dev.off()
}
Первый график:
Скорее всего, вы заметите, что ваши ярлыки сойдут со страницы, если соотношение сторон и radius=
(аргумент для pie
) не будут правильно обработаны, поиграйте с ним.
Легенда сложнее удержаться в границах ... как показывает совпадение с самой круговой диаграммой.
Наконец, я процитирую из справочной документации по этой функции (?pie
) причину, по которой я сначала не решался дать этот ответ:
Pie charts are a very bad way of displaying information. The eye
is good at judging linear measures and bad at judging relative
areas. A bar chart or dot chart is a preferable way of displaying
this type of data.
Cleveland (1985), page 264: "Data that can be shown by pie charts
always can be shown by a dot chart. This means that judgements of
position along a common scale can be made instead of the less
accurate angle judgements." This statement is based on the
empirical investigations of Cleveland and McGill as well as
investigations by perceptual psychologists.