I am trying to produce a map with pie charts laid over the top using draw.pie. I have turned my dataset into an xyz table where:
$x
 [1]   -1.023194 -106.346771  -14.452362  -15.310139   -3.435973   -3.996166  ect ...
$y
 [1]   7.946527  56.130366  14.497401  13.443182  55.378051  17.570692 -14.235004 ect ...
$z
                       1.0 1.1 1.2.1 1.2.2 2.0 2.0.1 2.2 2.3 2.3.1 2.3.2 2.3.3 2.4 2.4.1 2.4.2 2.4.3 2.4.4
-1.023194, 7.946527      0   0     0     0   0     0   0   1     0     0     0   0     0     0     0     0
-106.346771, 56.130366   0   0     0     1   0     0   1   1     0     0     3   2     0     1     0     2
-14.452362, 14.497401    0   0     0     0   0     0   0   3     0     0     0   0     0     0     0     0
ect...
I would like the pie charts to display the proportion of values in each of the number types, ie. for the pie chart at -1.023194, 7.946527 it would be 100% 2.3, but at -106.346771, 56.130366 it would be divided across 1.2.2,2.2,2.3,2.3.3, 2.4 and 2.4.2.
When I try to run my code I get this error:
Error in map() + draw.pie(z = zaxyz$z, x = zaxyz$x, y = zaxyz$y, radius = 0.3) : 
  non-numeric argument to binary operator
I thought perhpas this was because there were zeros in the table, so I made a trail xyz of :
$x
[1] 22.93751
$y
[1] -30.55948
$z
                      2.3
22.937506, -30.559482   4
But the same message still appears.
I'm very new to R, so this is likely an obvious issue. I'd greatly appreciate if anyone could help me.
Also- is there a way to make the pies on the map proportional to the total number of samples from those coordinates?
Is someone could show me how to do it on a dummy dataset as below...
Latitude   Longitude Number Paratype
12.565679  104.990963      3      2.3
12.565679  104.990963     57    2.3.1
12.565679  104.990963      1    2.4.1
12.862807   30.217636      1      2.3
20.593684   78.962880     14      2.3
20.593684   78.962880     35      2.4
23.684994   90.356331      3    2.4.4
I'd be really grateful. If this table was saved as df.csv, the code I currently have would be as follows:
library(maps)
library(mapdata)
library(maptools)
library(scales)
library(mapplots)
library(dplyr)
df <- data.frame(df.csv)
xyz <- make.xyz(df$Longitude, df$Latitude, df$Number, df$Paratype)
map() +
  draw.pie(z = xyz$z, x = xyz$x, y = xyz$y, radius = 0.3)
(But ideally here, radius = square root of number)
Sorry, I know this is a far from optimal way of presenting this data but I don't understand how to do it any other way.
