2015-10-12 2 views
1

Я беру эти данные по классу, в котором у нас есть у нас в основном копирование и вставка кода, а не обучение чему-либо. Я пытаюсь понять, как создать диаграмму рассеяния, которая иллюстрирует забастовку и мирные жертвы беспилотной войны.
Проблема, с которой я столкнулась, заключается в том, как использовать переменную из данных для определения цвета точки данных. Я хочу минимально использовать «статус» (dead/2, alive/1) для окраски точек. Было бы идеально, если бы я мог понять, как окрасить точки, основанные на национальной принадлежности гудения цели, так как у меня есть данные для этого. Во всяком случае, это то, что я до сих пор. Он создает точки, но не цвета. Я хотел бы знать, как создавать цвета.Создание цветного графика рассеяния

symbols(killVStarget$name, killVStarget$strikes, 
     circles=sqrt(killVStarget$casualties), 
     col=ifelse(killVStarget$status==2, "red", "black"), cex=0.15) 

Я импортировал данные из CSV-файла. Вот первые 10 записей копируются из Excel:

name     nationality status strikes casualties 
baitullah mehsud  pakistani 2  7  164 
qari hussain   pakistani 2  6  128 
abu ubaidah al masri pakistani 2  3  120 
mullah sangeen zadran pakistani 2  3  108 
ayman al-zawahiri  pakistani 1  2  105 
sirajudin haqqani  pakistani 1  5  82 
hakimullah mehsud  pakistani 2  5  68 
sadiq noor    pakistani 2  4  57 
said al-shihri   yemeni  2  4  57 
+0

дать пример данных (пара первых строк) вы используете – Mateusz1981

+1

воспроизводимый пример (http://stackoverflow.com/questions/5963269/how-to-make-a-great--reproducible-example) – Mateusz1981

+0

Я использую таблицу Excel, импортированную с помощью строки headin gs (target_name, забастовки, жертвы, национальность, статус). – Smeaux

ответ

1
df <- data.frame(name = c("baitullah mehsud pakistani", "qari hussain pakistani", "abu ubaidah al masri pakistani", "mullah sangeen zadran pakistani", 
          "ayman al-zawahiri pakistani", "sirajudin haqqani pakistani", "hakimullah mehsud pakistani", "sadiq noor pakistani", 
          "said al-shihri yemeni "), strikes = c(7, 6, 3, 3, 2, 5, 5, 4, 4), status = c(2, 2, 2, 2, 1, 1, 2, 2, 2), 
          casualities = c(164, 128, 120, 108, 105, 82, 68, 57, 57) 
          ) 



library(ggplot2) 
ggplot(aes(x = name, y = strikes, size = casualities, color = factor(status)), data = df) + geom_point() 

enter image description here

ggplot(aes(x = strikes, y = name, size = casualities, color = factor(status)), data = df) + geom_point() 

enter image description here

+0

Я бы поменял 'name' и' strikes' на оси x и y. Это предотвращает перекрытие меток по оси x без необходимости их поворота (что затрудняет их чтение). –

Смежные вопросы