ggplot2 ggmap,R 图例编辑
ggplot2 ggmap, R legend editing
这是
代码示例:
require(rgdal)
require(ggmap)
require(maptools)
library(RColorBrewer)
polska <- get_map(
location=c(lon=20.9589934, lat=53.5149404),
zoom=7,
maptype="roadmap"
)
mapa <- ggmap(polska)
nazwa <- c('LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ')
Lat <- c(53.772908, 54.179697, 53.77253, 53.769866, 53.824712, 53.770479, 54.155989, 53.77253, 53.900444,
53.769866, 53.769866, 53.784476, 53.776881, 51.765548, 53.770238, 53.626192, 54.179697, 54.155989, 53.770238, 54.179697, 54.161008, 53.241782,
53.693514, 54.497984, 54.179697, 53.770238, 54.179697, 54.12597, 53.793636, 53.769866,
53.77253, 53.813859, 54.082334, 53.769866, 54.179697, 54.153899, 53.693514,
53.769866, 54.179697, 51.765548, 53.820852, 53.144716, 53.586071, 53.144716, 53.793636,
53.424625, 53.241782, 53.769866, 53.557383)
Lon <- c(20.484436,
19.429063, 20.471922, 20.492113, 22.3542, 20.477155, 19.425851, 20.471922, 20.573356, 20.492113, 20.492113, 20.494275,
20.505175, 19.455863, 20.479557, 21.798478, 19.429063, 19.425851, 20.479557, 19.429063, 19.418135,
20.192547, 19.975791, 18.544899, 19.429063, 20.479557, 19.429063,
20.591212, 22.33971, 20.492113, 20.471922, 22.384305, 21.377269, 20.492113,
19.429063, 19.423336, 19.975791, 20.492113, 19.429063, 19.455863, 22.364016, 23.191729, 19.566362, 23.191729, 22.33971, 19.587424, 20.192547,
20.492113, 20.986225
)
personel <- data.frame(nazwa,Lat,Lon)
moja.paleta <- brewer.pal(10, "Set3")
personel$kolor <- moja.paleta[personel$nazwa]
punkty <- mapa+ geom_point( aes(x=Lon, y=Lat,fill=personel$kolor)
,data=subset(personel,nazwa=nazwa)#& dziedzina=='onkologia'))
,size=6
, color= "gold"
, pch=21
)
plot(punkty)
我的问题:
如何将此颜色名称的指南标签标题从 moja.paleta 更改为 personel$nazwa
还有如何更改图例标签的大小并使此图例垂直而不是水平?
图像
在 ggplot 中工作的一切都适用于 ggmap。因此,例如这个网页应该回答你的大部分问题:
http://www.cookbook-r.com/Graphs/Legends_%28ggplot2%29/
因为你没有给出任何示例数据,我无法验证这是否有效:
更改每个图例项的名称:
+ scale_fill_manual(labels=c("a", "b", "c"))
更改尺寸图例标签,更改位置图例
+ theme(legend.text = element_text(size = 16),
legend.position="bottom") #or top or so
我认为这应该可行
moja.paleta <- brewer.pal(10, "Set3")
mapa + geom_point( aes(x=Lon, y=Lat,fill=nazwa),
data=subset(personel,nazwa=nazwa)#& dziedzina=='onkologia')),
size=6,
color= "gold",
pch=21) +
scale_fill_manual( values=setNames(moja.paleta,levels(personel$nazwa)) ) +
guides(fill = guide_legend(ncol = 2)) +
theme(legend.position="bottom")
我们使用 scale_fill_manual
设置每个级别的颜色,并使用 fill=
美学为点着色(注意那里没有 $
-- 你应该避免在指定美学时。
我还把指南移到了底部并更改了列数。最后我不得不选择不同颜色的啤酒托盘,因为 "Blues" 没有 10 个值。
这是
代码示例:
require(rgdal)
require(ggmap)
require(maptools)
library(RColorBrewer)
polska <- get_map(
location=c(lon=20.9589934, lat=53.5149404),
zoom=7,
maptype="roadmap"
)
mapa <- ggmap(polska)
nazwa <- c('LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ',
'LEKARZ - SPECJALISTA GINEKOLOGII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA ONKOLOGII I HEMATOLOGII DZIECIĘCEJ',
'LEKARZ - SPECJALISTA ONKOLOGII KLINICZNEJ',
'LEKARZ - SPECJALISTA RADIOLOGII I DIAGNOSTYKI OBRAZOWEJ',
'LEKARZ - SPECJALISTA RADIOTERAPII ONKOLOGICZNEJ','LEKARZ - SPECJALISTA KARDIOCHIRURGII',
'LEKARZ - SPECJALISTA KARDIOLOGII',
'LEKARZ - SPECJALISTA KARDIOLOGII DZIECIĘCEJ',
'LEKARZ - RADIOLOGIA I DIAGNOSTYKA OBRAZOWA',
'LEKARZ - SPECJALISTA CHIRURGII ONKOLOGICZNEJ')
Lat <- c(53.772908, 54.179697, 53.77253, 53.769866, 53.824712, 53.770479, 54.155989, 53.77253, 53.900444,
53.769866, 53.769866, 53.784476, 53.776881, 51.765548, 53.770238, 53.626192, 54.179697, 54.155989, 53.770238, 54.179697, 54.161008, 53.241782,
53.693514, 54.497984, 54.179697, 53.770238, 54.179697, 54.12597, 53.793636, 53.769866,
53.77253, 53.813859, 54.082334, 53.769866, 54.179697, 54.153899, 53.693514,
53.769866, 54.179697, 51.765548, 53.820852, 53.144716, 53.586071, 53.144716, 53.793636,
53.424625, 53.241782, 53.769866, 53.557383)
Lon <- c(20.484436,
19.429063, 20.471922, 20.492113, 22.3542, 20.477155, 19.425851, 20.471922, 20.573356, 20.492113, 20.492113, 20.494275,
20.505175, 19.455863, 20.479557, 21.798478, 19.429063, 19.425851, 20.479557, 19.429063, 19.418135,
20.192547, 19.975791, 18.544899, 19.429063, 20.479557, 19.429063,
20.591212, 22.33971, 20.492113, 20.471922, 22.384305, 21.377269, 20.492113,
19.429063, 19.423336, 19.975791, 20.492113, 19.429063, 19.455863, 22.364016, 23.191729, 19.566362, 23.191729, 22.33971, 19.587424, 20.192547,
20.492113, 20.986225
)
personel <- data.frame(nazwa,Lat,Lon)
moja.paleta <- brewer.pal(10, "Set3")
personel$kolor <- moja.paleta[personel$nazwa]
punkty <- mapa+ geom_point( aes(x=Lon, y=Lat,fill=personel$kolor)
,data=subset(personel,nazwa=nazwa)#& dziedzina=='onkologia'))
,size=6
, color= "gold"
, pch=21
)
plot(punkty)
我的问题:
如何将此颜色名称的指南标签标题从 moja.paleta 更改为 personel$nazwa
还有如何更改图例标签的大小并使此图例垂直而不是水平?
图像
在 ggplot 中工作的一切都适用于 ggmap。因此,例如这个网页应该回答你的大部分问题: http://www.cookbook-r.com/Graphs/Legends_%28ggplot2%29/
因为你没有给出任何示例数据,我无法验证这是否有效:
更改每个图例项的名称:
+ scale_fill_manual(labels=c("a", "b", "c"))
更改尺寸图例标签,更改位置图例
+ theme(legend.text = element_text(size = 16),
legend.position="bottom") #or top or so
我认为这应该可行
moja.paleta <- brewer.pal(10, "Set3")
mapa + geom_point( aes(x=Lon, y=Lat,fill=nazwa),
data=subset(personel,nazwa=nazwa)#& dziedzina=='onkologia')),
size=6,
color= "gold",
pch=21) +
scale_fill_manual( values=setNames(moja.paleta,levels(personel$nazwa)) ) +
guides(fill = guide_legend(ncol = 2)) +
theme(legend.position="bottom")
我们使用 scale_fill_manual
设置每个级别的颜色,并使用 fill=
美学为点着色(注意那里没有 $
-- 你应该避免在指定美学时。
我还把指南移到了底部并更改了列数。最后我不得不选择不同颜色的啤酒托盘,因为 "Blues" 没有 10 个值。