ggplot2——坐标系篇

目录:

(更多内容请见:R、ggplot2、shiny 汇总


初始图样:

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))
p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) +
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE)   ## 添加点的数值
p

这里写图片描述


如何修改坐标轴的显示范围:

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))
p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) +
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE)

p + scale_x_continuous(limits = c(-5,15))   ## 方法一
p + xlim(-5,15)   ## 方法二

p + xlim(min(dt$A, 0)*1.2, max(dt$A)*1.2)   ## 一般使用倍数来限定大小,注意定义最小值的方式

这里写图片描述


如何修改坐标轴的标签(内容、大小、字体、颜色、加粗、位置、角度):

library(ggplot2)
windowsFonts(myFont = windowsFont("华文行楷"))   ##如果要更改字体,需要先“绑定”字体
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))
p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) +
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE)

p + xlab("这是 X 轴") + ylab("这是 Y 轴") + ggtitle("这是标题")   ## 修改文字方法一
p + labs(x = "这是 X 轴", y = "这是 Y 轴", title = "这是标题")   ## 修改文字方法二

#### 修改 X 轴标签的大小、字体、颜色、加粗、位置、角度 ####
p + xlab("这是 X 轴") + theme(axis.title.x = element_text(size = 15, family = "myFont", color = "green", face = "bold", vjust = 0.5, hjust = 0.5, angle = 45))

## face取值:plain普通,bold加粗,italic斜体,bold.italic斜体加粗

这里写图片描述


如何修改坐标轴的刻度标签(内容):

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))
p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) +
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE)
p + scale_x_continuous(breaks=dt$A, labels = dt$A*1000)   ## 只是把刻度上显示的文字改了而已

这里写图片描述


如何修改坐标轴的刻度标签(大小、字体、颜色、加粗、位置、角度):

library(ggplot2)
windowsFonts(myFont = windowsFont("华文行楷"))   ##如果要更改字体,需要先“绑定”字体
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))
p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) +
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE)

####修改 X 轴刻度文字的大小、字体、颜色、加粗、位置、角度:
p + theme(axis.text.x = element_text(size = 15, family = "myFont", color = "green", face = "bold", vjust = 0.5, hjust = 0.5, angle = 45))

## face取值:plain普通,bold加粗,italic斜体,bold.italic斜体加粗

这里写图片描述


如何修改坐标轴的刻度间隔:

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))
p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) +
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE)
p + scale_x_continuous(breaks=seq(0, 10, 5))   ## X 轴每隔 5 个单位显示一个刻度

这里写图片描述


如何去掉网格线:

删去之前:

这里写图片描述

删去之后:

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))

p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) + 
  labs(x = "", y = "", title = "") + 
  theme_bw() + 
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE) + 
  theme(panel.grid =element_blank())   ## 删去网格线
p

这里写图片描述


如何去掉坐标轴上的刻度标签:

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))

p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) + 
  labs(x = "", y = "", title = "") + 
  theme_bw() + 
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE) + 
  theme(panel.grid =element_blank()) +    ## 删去网格线
  theme(axis.text = element_blank())   ## 删去所有刻度标签
# theme(axis.text.y = element_blank())   ## 设置 axis.text.y 则只删去 Y 轴的刻度标签,X 轴同理。
p

这里写图片描述


如何去掉刻度线:

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))

p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) + 
  labs(x = "", y = "", title = "") + 
  theme_bw() + 
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE) + 
  theme(panel.grid =element_blank()) +   ## 删去网格线
  theme(axis.text = element_blank()) +   ## 删去所有刻度标签
  theme(axis.ticks = element_blank())   ## 删去所有刻度线
# theme(axis.ticks.y = element_blank())   ## 设置 axis.ticks.y 则只删去 Y 轴的刻度线,X 轴同理。
p

这里写图片描述


如何去掉外层边框:

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))

p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) + 
  labs(x = "", y = "", title = "") + 
  theme_bw() + 
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE) + 
  theme(panel.grid =element_blank()) +   ## 删去网格线
  theme(axis.text = element_blank()) +   ## 删去刻度标签
  theme(axis.ticks = element_blank()) +   ## 删去刻度线
  theme(panel.border = element_blank())   ## 删去外层边框
p

这里写图片描述


如何再加上X轴、Y轴(无刻度、无标签):

library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))

p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) + 
  geom_point(size = 3.8) +
  geom_line(size = 0.8) + 
  labs(x = "", y = "", title = "") + 
  theme_bw() + 
  geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show_guide = FALSE) + 
  theme(panel.grid =element_blank()) +   ## 删去网格线
  theme(axis.text = element_blank()) +   ## 删去刻度标签
  theme(axis.ticks = element_blank()) +   ## 删去刻度线
  theme(panel.border = element_blank()) +   ## 删去外层边框
  theme(axis.line = element_line(size=1, colour = "black"))   ## 再加上坐标轴(无刻度、无标签)
p

这里写图片描述



转载请注明出处,谢谢!(原文链接:http://blog.csdn.net/bone_ace/article/details/47427453

### 使用灰色调绘制图形 在 Python 和 R 中都可以通过特定的方式实现灰度颜色的设置来完成绘图操作。以下是两种语言中的具体方法。 #### 在 R 语言中使用 `grey` 或 `gray` R 提供了一个内置函数 `grey()` (或其同义词 `gray()`) 来生成不同深浅程度的灰色色调。该函数接受一个介于 0 到 1 的数值作为参数,其中 0 表示黑色而 1 表示白色[^3]。可以将其应用于各种绘图属性上,比如线条的颜色或者填充区域的颜色等。 例如,在基础绘图系统里可以通过如下方式应用: ```r # 创建数据集 x <- seq(0, pi * 4, length.out = 100) y <- sin(x) # 调用 plot 函数并指定线型为 'l' 即直线连接各点, # 同时定义主标题以及坐标标签文字说明。 plot( x, y, type = "l", col = gray(0.5), # 设置线条颜色为半透明灰色 main = "Plot with Grey Color Line", xlab = "X Values", ylab = "Y Values" ) ``` 上述代码片段展示了如何利用 `gray()` 方法改变默认蓝色彩色线条至中间层次的灰色效果[^1]。 对于更复杂的图表组合需求,则可考虑结合其他高级包如 ggplot2 实现更定制化选项[^2]。 #### 在 Python 中模拟灰色系配色方案 虽然 Matplotlib 并未直接提供类似于 R 的 `grey/gray` 功能接口,但是我们依然能够借助 RGB 值手动配置相应的灰阶表现形式。下面给出一段简单的例子用于展示这一过程: ```python import matplotlib.pyplot as plt import numpy as np # 构建测试数据序列 x = np.linspace(0, 4 * np.pi, num=100) y = np.sin(x) plt.figure(figsize=(8, 6)) for i in range(9): color_value = str(i / 8.) # 计算当前循环对应的灰度级别字符串表示法 plt.plot(x, y + .7*i, label=f"Gray Level {i}", c=color_value) plt.title('Sine Waves With Different Gray Levels') plt.xlabel('Angle [rad]') plt.ylabel('sin(x)') plt.legend() plt.show() ``` 这里采用了字符串格式化的技巧动态调整每条曲线所使用的精确灰度比例值[^4]。 --- ### 总结 无论是采用 R 还是 Python 编程环境下的可视化工具库,都能够方便快捷地引入基于灰度模型设计出来的视觉样式增强最终呈现质量。只需记住各自平台下特有的语法结构即可轻松达成目标。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值