资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

怎么用R语言ggplot2画图及一套好看的配色以及调整字体

这篇文章给大家介绍怎么用R语言ggplot2画图及一套好看的配色以及调整字体,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

目前累计服务客户成百上千家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供成都网站建设、成都做网站、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。

昨天看到的一份资料,介绍的是ggplot2画柱形图并且使用指定的字体,我感觉最终成图的配色还挺好看的,记录在这里。总共6个颜色值,分别是 c("#02B1e6", "#E81D22", "#F9BC15", "#8015f9", "#20e81d", "#e64602") 

 首先用柱形图展示一下这个颜色的效果

代码

col<-c("#02B1e6", "#E81D22", "#F9BC15", "#8015f9", "#20e81d", "#e64602")
df<-data.frame(x=LETTERS[1:6],
               y=6,
               label=c("#02B1e6", "#E81D22", "#F9BC15", "#8015f9", "#20e81d", "#e64602"))
library(ggplot2)
ggplot(df,aes(x=x,y=y))+
  geom_col(aes(fill=x),show.legend = FALSE)+
  geom_label(aes(label=label))+
  scale_fill_manual(values = col)+
  theme_void()
 
怎么用R语言ggplot2画图及一套好看的配色以及调整字体  
image.png

看起来还不错吧!

开头提到的链接里还提到了如何使用指定的字体,这里可以参考一下B站的视频教程 https://www.bilibili.com/video/BV1ke411p7B4 这个里面提到的解决办法是 借助 extrafont这个R包,通过这个包中的font_import()函数将将操作系统中所有的字体导入,第一次使用时间可能会有点长。导入结束后就可以使用fonts()函数查看导入字体的名称。font_import()函数还可以导入指定路径下的字体

怎么用R语言ggplot2画图及一套好看的配色以及调整字体  
image.png

我的R语言里目前可以使用的字体如下

怎么用R语言ggplot2画图及一套好看的配色以及调整字体  
image.png

R语言ggplot2画图如果要更改图片整体的字体可以使用theme()函数设置text参数

library(ggplot2)
library(Cairo)
p<-ggplot(df,aes(x=x,y=y))+
  geom_col(aes(fill=x),show.legend = FALSE)+
  geom_label(aes(label=label),family="Times New Roman")+
  scale_fill_manual(values = col)+
  theme_bw()+
  theme(text = element_text(family = "Times New Roman",
                            size=20))
ggsave("Rplot01.pdf",p,device = cairo_pdf)
 
怎么用R语言ggplot2画图及一套好看的配色以及调整字体  
image.png

这里我遇到一个问题是 从系统里导入的字体可以使用,但是从指定目录导入的字体还不能使用,暂时不知道是什么原因。

关于怎么用R语言ggplot2画图及一套好看的配色以及调整字体就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文名称:怎么用R语言ggplot2画图及一套好看的配色以及调整字体
URL分享:http://cdkjz.cn/article/jcisdh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220