plot an item map (based on difficulties)
- by Tyler Rinker
I have a data set of item difficulties that correspond to items on a questionnaire that looks like this:
item difficulty
1 ITEM_6: I DESTROY THINGS BELONGING TO OTHERS 2.31179818
2 ITEM_11: I PHYSICALLY ATTACK PEOPLE 1.95215238
3 ITEM_5: I DESTROY MY OWN THINGS 1.93479536
4 ITEM_10: I GET IN MANY FIGHTS 1.62610855
5 ITEM_19: I THREATEN TO HURT PEOPLE 1.62188759
6 ITEM_12: I SCREAM A LOT 1.45137544
7 ITEM_8: I DISOBEY AT SCHOOL 0.94255210
8 ITEM_3: I AM MEAN TO OTHERS 0.89941812
9 ITEM_20: I AM LOUDER THAN OTHER KIDS 0.72752197
10 ITEM_17: I TEASE OTHERS A LOT 0.61792597
11 ITEM_9: I AM JEALOUS OF OTHERS 0.61288399
12 ITEM_4: I TRY TO GET A LOT OF ATTENTION 0.39947791
13 ITEM_18: I HAVE A HOT TEMPER 0.32209970
14 ITEM_13: I SHOW OFF OR CLOWN 0.31707701
15 ITEM_7: I DISOBEY MY PARENTS 0.20902108
16 ITEM_2: I BRAG 0.19923607
17 ITEM_15: MY MOODS OR FEELINGS CHANGE SUDDENLY 0.06023317
18 ITEM_14: I AM STUBBORN -0.31155481
19 ITEM_16: I TALK TOO MUCH -0.67777282
20 ITEM_1: I ARGUE A LOT -1.15013758
I want to make an item map of these items that looks similar (not exactly) to this (I created this in word but it lacks true scaling as I just eyeballed the scale). It's not really a traditional statistical graphic and so I don't really know how to approach this. I don't care what graphics system this is done in but I am more familiar with ggplot2 and base.
I would greatly appreciate a method of plotting this sort of unusual plot.
Here's the data set (I'm including it as I was having difficulty using read.table on the dataframe above):
DF <- structure(list(item = structure(c(17L, 3L, 16L, 2L, 11L, 4L,
19L, 14L, 13L, 9L, 20L, 15L, 10L, 5L, 18L, 12L, 7L, 6L, 8L, 1L
), .Label = c("ITEM_1: I ARGUE A LOT", "ITEM_10: I GET IN MANY FIGHTS",
"ITEM_11: I PHYSICALLY ATTACK PEOPLE", "ITEM_12: I SCREAM A LOT",
"ITEM_13: I SHOW OFF OR CLOWN", "ITEM_14: I AM STUBBORN", "ITEM_15: MY MOODS OR FEELINGS CHANGE SUDDENLY",
"ITEM_16: I TALK TOO MUCH", "ITEM_17: I TEASE OTHERS A LOT",
"ITEM_18: I HAVE A HOT TEMPER", "ITEM_19: I THREATEN TO HURT PEOPLE",
"ITEM_2: I BRAG", "ITEM_20: I AM LOUDER THAN OTHER KIDS", "ITEM_3: I AM MEAN TO OTHERS",
"ITEM_4: I TRY TO GET A LOT OF ATTENTION", "ITEM_5: I DESTROY MY OWN THINGS",
"ITEM_6: I DESTROY THINGS BELONGING TO OTHERS", "ITEM_7: I DISOBEY MY PARENTS",
"ITEM_8: I DISOBEY AT SCHOOL", "ITEM_9: I AM JEALOUS OF OTHERS"
), class = "factor"), difficulty = c(2.31179818110545, 1.95215237740899,
1.93479536058926, 1.62610855327073, 1.62188759115818, 1.45137543733965,
0.942552101641177, 0.899418119889782, 0.7275219669431, 0.617925967008653,
0.612883990709181, 0.399477905189577, 0.322099696946661, 0.31707700560997,
0.209021078266059, 0.199236065264793, 0.0602331732900628, -0.311554806052955,
-0.677772822413495, -1.15013757942119)), .Names = c("item", "difficulty"
), row.names = c(NA, -20L), class = "data.frame")
Thank you in advance.