自定义轴标签
回答
你应该能够scale_x_discrete
做到这一点。
library(ggplot2)
df <- data.frame(x = 1:5, y = sample(1:10, 5, TRUE))
qplot(factor(x),y, data = df) +
scale_x_discrete(breaks = 1:5, labels=c("foo","bar","baz","phi","fum")) +
xlab(NULL)
这里是一个重复的例子,我觉得你的封装Q(?):
require(ggplot2)
dat <- data.frame(X = sample(1:5, 100, replace = TRUE),
Y = rnorm(100))
它不是立即清楚你有什么样的数据,但如果你的意思是这样:
(p1 <- ggplot(dat, aes(x = X, y = Y)) + geom_point())
那么我想你想有一个带状图,它可以在ggplot通过因子来实现
dat2 <- within(dat, X <- factor(X, labels = letters[1:5]))
(p2 <- ggplot(dat2, aes(x = X, y = Y)) + geom_point())
如果这是不是你的意思,你可以编辑你的Q来提供一个例子吗?
scale_x_discrete
应该这样做:
x <- sample(1:5, 20, T)
y <- rnorm(20) + x
df <- data.frame(x = ordered(x), y = y)
ggplot(df,aes(x,y)) + geom_point() +
scale_x_discrete(breaks = 1:5, labels = letters[1:5])
不是一个大的ggplot用户,是不是'scale_x_discrete'暗示如果'x'是一个因素?如果是这样,是否有直接调用它的优势,而不是在数据中获得正确的因子标签?我可以和@Chase一样询问他提供了相同的答案吗? – 2011-02-23 21:29:00
@Gavin你是对的 - 'scale_x_discrete'只用于覆盖默认的因子标签。如果你有一个数据框,并且你想在不同情况下对它进行不同的绘制(即每次使用不同的标签),那么我认为这很有用,这样你就不必每次都改变数据框。 – 2011-02-23 21:55:26
@Gavin&@Prasad - 我理解OP的问题意味着他有数字值,他想在这种情况下表示为分类或序数。有趣的是,Prasad和我essentailly制定了相同的答案。有没有比'factor()'更有序的()'? – Chase 2011-02-23 22:39:25
- 1. visifire自定义轴标签不显示
- 2. Chart.js - y轴自定义标签
- 3. JFreeChart自定义x轴标签
- 4. Core Plot的自定义轴标签
- 5. Libreoffice Calc:自定义x轴标签
- 6. jFreeChart自定义域轴标签
- 7. MS图表显示自定义标签和隐藏轴标签
- 8. 核心图:使用自定义轴标签交替填充轴
- 9. 定义自定义标签
- 10. 在X轴上自定义刻度标记和标签(Excel VBA)
- 11. 自定义y轴标签在GGPLOT2与数转换坐标
- 12. ggplot2中的自定义坐标轴刻度标签
- 13. ColdFusion的使用自定义标签中自定义标签
- 14. Highcharts预定义的x轴标签
- 15. LWUIT标签:创建自定义标签
- 16. Docusign自定义标签 - 配方标签
- 17. TeeChart CircularGauge Axis自定义轴标签格式问题
- 18. 自定义ggplot2中的x轴刻度标签
- 19. 如何在y轴上设置自定义标签
- 20. Highcharts使用自定义多个轴标签
- 21. Chart.JS自定义y轴标签文本有价值
- 22. 自定义X轴MS C#MS图表标签
- 23. x轴自定义标签nvd3折线图angularjs
- 24. Android - 如何使用自定义x轴标签使用AChartEngine
- 25. xaml具有自定义轴标签的c#图表
- 26. nvd3图上x轴的自定义标签
- 27. 核心图:x轴上的自定义标签条形图
- 28. 绘制R中的预测的自定义轴标签
- 29. R中辅助y轴上的自定义标签
- 30. 如何使用MigraDoc设置Y轴自定义标签?
唉,如果x轴不是一个因素,这不起作用。 – gappy 2011-02-24 16:32:11
@gappy - 这里的关键是将您的x轴转换为一个因子。 @prasad和我提供的解决方案在ggplot调用本身(“factor(x)”和“ordered(x)”位)中执行此操作,而@ Gavin在预处理步骤中处理它。所有三个答案的最终结果是'x轴'在绘图之前被视为一个因素。 – Chase 2011-02-24 16:46:11
@gappy您的数据*是* R将会考虑的一个因素 - 至少从您给出的简要说明。数据可以取值1.5吗?如果他们能够得到那些数据点的标签?如果你的数据*是有序的,那么你应该告诉R这个并存储为/ coerce到一个因子(因子())或有序因子('ordered()')。如果你这样做,它会在很多情况下做正确的事情。看我的答案 - 如果你告诉R数据是一个因素,绘制正确的图表。 @Chase和@Prasad的答案强制作为情节的一部分,并允许运行时定制标签。 – 2011-02-24 19:45:55