r - 如何定制 R 绘图轴?
问题描述
我将以下数据存储在 CSV 文件中。
NodeID,pageRank
0,0.0327814931593
1,0.384378430034
2,0.342932804288
3,0.0390870921
4,0.0808856932345
5,0.0390870921
我已经阅读了 R 中的 CSV 文件并按pageRank
降序排列了值。
data <- read.csv("pagerank.csv")
data <- data[order(-data$pageRank),]
下单后data
看下图。
1 0.38437843
2 0.34293280
4 0.08088569
3 0.03908709
5 0.03908709
0 0.03278149
在上面的例子中,第一列表示NodeID
(不按顺序排列),第二列表示pageRank
(降序排列)。接下来,我使用以下命令绘制数据。
plot(data$pageRank, type="o", col="red", xlab="Node Rank", ylab="PageRank Value")
该图pageRank
正确显示了 Y 轴(值)。但是,在 X 轴上,它显示的是连续数字 (0,1,2,3,4,5)。因此,我如何通过保持的降序NodeID
在 X 轴(在 中可用)上绘制 (1,2,4,3,5,0) 而不是显示序号。我尝试了以下方法。但是,它不保持的降序。data
pageRank
pageRank
plot(data$NodeID, data$pageRank, type="o", col="red", xlab="NodeID", ylab="PageRank Value")
解决方案
您可以fct_reorder
从forcats
包装中使用来为您订购。另请参阅此。
library(magrittr)
library(tidyverse)
library(forcats)
txt <- "NodeID,pageRank
0,0.0327814931593
1,0.384378430034
2,0.342932804288
3,0.0390870921
4,0.0808856932345
5,0.0390870921"
df <- read_csv(txt)
# Convert NodeID column to factor first
df %<>%
mutate(NodeID = factor(NodeID))
# Plot
ggplot(df, aes(pageRank, fct_reorder(NodeID, pageRank))) +
geom_point() +
geom_segment(aes(y = NodeID, yend = NodeID, x = 0, xend = pageRank), color = "red") +
scale_x_continuous(expand = c(0, 0)) +
ylab("Node Rank") +
xlab("PageRank Value") +
theme_classic(base_size = 16)
ggplot(df, aes(y = pageRank, x = fct_reorder(NodeID, -pageRank))) +
geom_line(group = 1, color = "red") +
scale_y_continuous(expand = c(0, 0)) +
xlab("Node Rank") +
ylab("PageRank Value") +
theme_classic(base_size = 16)
使用基础 R 图
df$NodeID <- factor(df$NodeID, levels = c("1", "2", "4", "3", "5", "0"))
plot(df$pageRank ~ df$NodeID, xlab = "Node Rank", ylab = "PageRank Value")
由reprex 包(v0.2.0.9000)于 2018 年 8 月 8 日创建。
推荐阅读
- php - 如何在PHP中上传本地文件夹中的文件并同时将其添加到数据库中?
- ios - Xcode 10.2 无法在 iOS < 10 的模拟器上运行应用程序
- python - mask-rcnn 无法正确屏蔽“细长”对象,例如动物尾巴
- php - 在线测验 问题 ID 未插入数据库
- node.js - 本地主机没有发送任何数据 - ERR_EMPTY_RESPONSE
- google-sheets - 在 Google 工作表中查找相似值并移动单元格
- java - 类仍然通过 PHP 中的旧数组
- mule - 在 Mule 4 中声明动态数据编织变量,就像我们在 Mule 3 中所做的那样
- android - 如何修复“java.lang.IllegalStateException:无法从 CursorWindow 读取第 0 行,第 2 列。”
- ruby-on-rails - 如何为以下代码创建 RSpec 测试