You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将R语言中的数值转换为英镑货币格式?已尝试setClass未成功

解决R语言中数值转英镑货币格式的问题

你可以用两种简单方式实现数值转英镑格式,不用复杂的自定义类:

方法1:使用scales包的现成格式化函数

scales包提供了灵活的货币格式化工具,只需指定前缀为英镑符号即可。

  1. 先安装并加载scales包(未安装过的话执行安装命令):
install.packages("scales")
library(scales)
  1. 修改你的ggplot代码,重点调整文本标签和y轴刻度的格式化逻辑:
library(tidyverse)
library(ggplot2)
library(scales)

mydf <- data.frame( Category = c("Average"),
                    Example1=c(73.78),
                    Example2=c(74.32),
                    Example3=c(74.33),
                    Example4=c(84.02))

mydf %>%
  gather(Month, Total, -Category) %>%
  mutate(Month = reorder(Month, row_number())) %>%
  mutate(Category = reorder(Category, row_number())) %>%
  ggplot(aes(Month, Total, fill = Month, group = Category)) +
  geom_bar(stat = "identity", position = "dodge", width=0.5, fill="orange") +
  # 将标签格式化为英镑格式
  geom_text(aes(label = dollar_format(prefix = "£")(Total)), 
            position = position_dodge(width = .3), hjust=1.3, size = 4)+
  coord_flip() +
  labs(x = "", y = "", title = "Example Title", subtitle = "Example Subtitle", legend=FALSE) +
  theme_bw() +
  theme(panel.grid.major.x = element_blank(),
        panel.border = element_blank(),
        plot.title = element_text(hjust = 0),
        axis.text.x = element_text(size = 10, face = "bold"),
        axis.text.y = element_text(size = 10, face = "bold"),
        legend.position = "none") +
  # 调整y轴刻度为英镑格式,同时修正范围(原0-30会截断数据,改成0-90更合理)
  scale_y_continuous(labels = dollar_format(prefix = "£"), limits = c(0, 90))

方法2:自定义简单格式化函数

如果不想额外加载包,自己写个小函数也能实现:

# 定义英镑格式化函数,强制保留两位小数
pound_fmt <- function(x) {
  paste0("£", sprintf("%.2f", x))
}

# 替换代码中对应的部分即可:
# geom_text(aes(label = pound_fmt(Total)), ...)
# scale_y_continuous(labels = pound_fmt, limits = c(0, 90))

注意:你原代码中scale_y_continuous的limits = c(0, 30)会截断所有柱子(数据值都在70-80区间),建议调整为合理范围,否则图表显示会异常。

内容的提问来源于stack exchange,提问作者Bren85

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:31:21