R: Gradient sur la parcelle d'un fichier de formes
J'ai actuellement un shapefile du royaume-UNI et ont tracé la population de l'espèce dans les différentes régions du royaume-UNI. Pour l'instant j'ai juste de tracer les 3 niveaux de population des espèces et de couleur rouge=haute, orange=med, vert=faible. Mais ce que je voudrais faire serait d'avoir un gradient de la parcelle au lieu d'être délimité par seulement 3 couleurs.
Pour l'instant j'ai un tableau appelé le Comte qui a les régions comme les noms de colonne, puis le comte d'espèces pour chaque région ci-dessous. Mon plus bas nombre de 0 et de ma plus haute d'environ 2 500 et les régions en compte de la correspondance avec les régions dans mon shapefile. J'ai une fonction qui détermine ce qu'est la haute, moyenne, faible, selon le niveau que vous entrez vous-même
High<-colnames(Count)[which(Count>'input value here')]
et puis ce sont tracées sur le shapefile comme ceci:
plot(ukmap[(ukmap$Region %in% High),],col='red',add=T)
Malheureusement je ne peux pas vraiment installer tous les packages, je pensais de l'aide colorRamp, mais je ne suis pas vraiment sûr de ce que faire?
EDIT: mes données ressemble à quelque chose comme ceci
Wales Midlands North Scotland South East South West
1 551 32 124 1 49 28
3 23 99 291 152 164 107
4 1 7 17 11 21 14
7 192 32 12 0 1 9
9 98 97 5 1 21 0
et de la première colonne est juste un nombre qui représente l'espèce et actuellement, j'ai une fonction qui trace les compter sur un royaume-UNI shapefile, mais basé sur les frontières de la haute, moyenne et faible. Les données ci-dessus n'est pas attaché à mon shapefile. J'ai ensuite une boucle pour chaque ligne (espèces) de mon jeu de données et de tracer une nouvelle carte pour chaque ligne (espèces).
OriginalL'auteur userk | 2013-08-02
Vous devez vous connecter pour publier un commentaire.
OK, voici une autre solution qui n'utilise pas
ggplot
(je vais laisser leggplot
solution pour référence). Ce code est simple, mais il devrait être assez pour vous donner quelques idées sur comment vous pouvez l'adapter à vos propres données.Le résultat de ce code est la suite de l'intrigue.
MODIFIER à la suite d'une demande visant à inclure une légende, j'ai modifié un peu le code mais en toute honnêteté, je ne comprends pas la base de R
legend
fonctionnent suffisamment bien pour obtenir quelque chose de qualité de production et je n'ai aucune envie d'approfondir les recherches. (D'ailleurs chapeau astuce pour cette question pour des idées.) Un coup d'oeil à l'intrigue sous le code suggère que nous avons besoin de réorganiser la légende des couleurs, etc, mais je vais laisser cela à l'affiche originale comme un exercice ou à une autre question.Bref, la réponse est "pas vraiment". Voir édité réponse ci-dessus.
OriginalL'auteur SlowLearner
Tout droit, je vais mordre. Je ne vais pas utiliser la base de R, car
plot
est trop dur pour moi de comprendre, de sorte que au lieu de cela, nous allons utiliserggplot2
.Cela génère la sortie ci-dessous, qui peut être semblable à ce dont vous avez besoin.
Noter que nous n'avons pas explicitement spécifier le gradient dans ce cas - nous juste le laisser jusqu'à
ggplot
. Si vous souhaitez spécifier les détails, il est possible, mais plus impliqués. Si vous allez dans cette voie, vous devez créer une autre colonne dansuk.map
à allouer chaque chef d'accusation dans l'une des (dis) 10 bacs à l'aide de lacut
fonction. Leuk.map
bloc de données ressemble à ceci:Vous n'avez ni
ggplot2
ni lamaps
paquets? Avez-vous fait unlibrary()
appeler pour vérifier?Je n'ai pas de ggplot2, j'ai gplots cependant je n'ai pas installé de perl. pour dessiner des cartes, je suis en utilisant maptools mais oui, j'ai aussi les cartes du paquet et pour la lecture de mes données à partir d'une feuille de calcul excel, je suis en utilisant XLConnect.
Je suis surpris que vous n'avez pas accès à
ggplot2
- c'est presque partie intégrante de la R de ces jours. Sur le long terme, il serait utile d'apprendre et de l'utiliser, je vous suggère de demander à la personne qui contrôle votre R installations pour vous donner la permission. Ne?install.packages
pour plus de détails.OriginalL'auteur SlowLearner
Avez-vous essayé colorRampPalette?
Ici est de savoir comment vous pourriez essayer de construire une palette dégradé
[1] "#0000FF" "#1C00E2" "#3800C6" "#5500AA" "#71008D" "#8D0071" "#AA0055"
[8] "#C60038" "#E2001C" "#FF0000"
Un exemple de la parcelle
Oui je pensais de l'aide colorRampPalette, quelque chose le long des lignes de gradient_color<-colorRampPalette(c("vert", "jaune", "rouge")) similaire à la façon dont vous l'avez fait, mais je ne suis pas sûr de la façon de l'appliquer à mes valeurs de Comptage, des idées? merci beaucoup!
Eh bien, vous n'avez pas donné un reproductibles question (voir ici pour plus de détails), il est donc difficile de les aider. Cela dit, mettre un fichier de formes en question est généralement pas facile à faire (si vous pouvez fournir un lien de téléchargement), mais au moins nous montrer ce que votre apparence des données, alors nous pourrions être en mesure de vous aider.
OriginalL'auteur user2510479