当前位置: 首页 > java >正文

浅谈ggplot2图表美化~

众所周知ggplot2的默认出图很丑,今天就以一个散点图为例,浅浅的说一下如何一步步美化。


    关键修改见代码中的中文注释!

    第1步、默认出图

    ggplot(tips_data, # 指定数据集aes(x = total_bill, # 指定x轴变量y = tip # 指定y轴变量)
    ) +geom_point() # 绘制散点图


    第2步、指定shape

    ggplot(tips_data,aes(x = total_bill,y = tip,shape = sex # 按照性别指定不同的shape)
    ) +geom_point() 

    ggplot(tips_data,aes(x = total_bill,y = tip,shape = sex)
    ) +geom_point() +scale_shape_manual(values = c(21, 24)) # 个性化shape的形状为空圆和空三角


    第3步、指定颜色

    ggplot(tips_data,aes(x = total_bill,y = tip,shape = sex,fill = sex # 按照性别sex为点上色)
    ) +geom_point() +scale_shape_manual(values = c(21, 24))

    ggplot(tips_data,aes(x = total_bill,y = tip,shape = sex,fill = sex)
    ) +geom_point() +scale_shape_manual(values = c(21, 24)) +scale_fill_manual(values = custom_colors1) #自定义颜色


    第4步、美化点

    ggplot(tips_data,aes(x = total_bill,y = tip,shape = sex,fill = sex)
    ) +geom_point(alpha = 0.8, # 设置点的透明度size = 3, # 设置点的大小stroke = 0.2 # 设置点边框的粗细) +scale_shape_manual(values = c(21, 24)) +scale_fill_manual(values = custom_colors1)

    ggplot(tips_data,aes(x = total_bill,y = tip,shape = sex,fill = sex)
    ) +geom_point(alpha = 0.8,size = 3,stroke = 0.2) +scale_shape_manual(values = c(21, 24)) +scale_fill_manual(values = custom_colors1) +scale_color_manual(values = c("black", "black")) # 给点边框加上颜色


    第5步、最后的美化

    ggplot(tips_data,aes(x = total_bill,y = tip,shape = sex,fill = sex)
    ) +geom_point(alpha = 0.8,size = 3,stroke = 0.2) +scale_shape_manual(values = c(21, 24)) +scale_fill_manual(values = custom_colors1) +scale_color_manual(values = c("black", "black")) +theme(text = element_text(family = "Helvetica", size = 12), # 字体为Helvetica,字号为12axis.title = element_text(size = 12), # 坐标轴标题大小axis.text = element_text(size = 12), # 坐标轴刻度大小axis.line = element_line(linewidth = 0.2, color = "black"), # 坐标轴线条axis.ticks = element_line(linewidth = 0.2, color = "black"), # 坐标轴刻度线panel.background = element_blank(), # 去除背景panel.grid.major = element_line(color = "gray90", linewidth = 0.1), # 主网格线panel.grid.minor = element_blank(), # 次网格线plot.title = element_text(size = 14, hjust = 0.5), # 标题居中plot.margin = margin(10, 10, 10, 10) # 图形边距)


    数据集

    本次使用的tips数据,包含7列,

    每列详细介绍

    • total_bill:总消费金额(美元)
    • tip:小费金额(美元)
    • sex:顾客的性别(Male / Female)
    • smoker:顾客是否吸烟(Yes / No)
    • day:用餐的星期几(Thur, Fri, Sat, Sun)
    • time:用餐时间(Lunch / Dinner)
    • size:就餐人数

    节选《保姆级R可视化教程》来了!

    http://www.xdnf.cn/news/8824.html

    相关文章:

  • 8:OpenCV—仿射变换和坐标映射
  • 每日Prompt:龙虎斗
  • LangChain4j 项目实战——idea快捷键搜索
  • 力扣第157场双周赛
  • NISP和CISP有什么区别,哪个更好
  • 内容中台的核心价值是什么?
  • 决策引擎与规则引擎在交易所业务风控中的建设思路、架构设
  • 【开源项目】成本50元内的开源项目
  • 只能上百度b站打不开其他网页
  • 关于 java: 2. 面向对象编程(OOP)核心概念
  • lc hot 100之:回文链表
  • 探索容器技术:Docker与Kubernetes的实践指南
  • TiDB:从快速上手到核心原理与最佳实践
  • FreeRTOS--信号量
  • JavaEE 网络编程套接字详解与实战示例
  • QNAP NEXTCLOUD 域名访问
  • GO语言基础4 Errors 报错
  • Redis之金字塔模型分层架构
  • go实现钉钉三方登录
  • 开源 OIDC(OpenID Connect)身份提供方(IdP)、iam选型
  • 历年安徽大学保研上机真题
  • AWS EC2 使用Splunk DB connect 连接 RDS mysql
  • ​​C++ 中 protected/public/private 访问控制修饰符的区别​
  • 白皮精读:全国统一数据资产登记体系建设白皮书【附全文阅读】
  • 使用Vue3制作一款个性化上传组件
  • 刷leetcode hot100返航版--栈和队列5/24
  • java多态的学习笔记
  • 从工程实践角度分析H.264与H.265的技术差异
  • icexmoon-tree
  • C语言中的寄存器:理解与应用