将图表中的数字格式化为百分比

发布于 2024-12-11 02:29:39 字数 511 浏览 0 评论 0 原文

可能的重复:
如何在 R 中将数字格式化为百分比?

这肯定是一个新手问题,但是如何将图表中的数字(例如 PerformanceAnalytics 中的 PerformanceSummary)格式化为百分比?我使用的数据格式为 0.04 等。一切工作正常,除了我希望图表显示百分比。

提前致谢

编辑:

这就是我现在的做法(出于简单原因使用标准数据):

library("PerformanceAnalytics")
data(managers)
charts.PerformanceSummary(managers)

当我去谷歌搜索提供我自己的标签时,我把它放在这里。

Possible Duplicate:
How to format a number as percentage in R?

This must be a newbie questions, but how do I format numbers in charts (say PerformanceSummary in PerformanceAnalytics) as percentages? The data I use are in the format of 0.04 etc. Everything is working fine, except I want the charts to show percentages.

Thanks in advance

EDIT:

Here is how I am doing it now (with standard data for simplicity reasons):

library("PerformanceAnalytics")
data(managers)
charts.PerformanceSummary(managers)

I put it here while I go googling for providing my own labels.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难如初 2024-12-18 02:29:39

除非我错过了什么,否则我认为这根本不是一个新手问题。

(免责声明:我认为这个答案不是特别优雅,而且图形很糟糕。但希望它可以作为模板,以便其他人可以改进并发布一些正确的代码。)

此操作的一种方法:

  • 这是在基本图形中执行 向上绘制没有 y 轴的图,即使用 yaxt="n"
  • 计算您希望标签位于的位置,例如使用 seq
  • 使用 sprintfround 为将标签格式化为带有百分号的文本

一些代码:

set.seed(1)
x <- runif(10)
plot(x, type="h", yaxt="n")
yLabels <- seq(0.2, 0.8, 0.2)
axis(2, at=yLabels, labels=sprintf(round(100*yLabels), fmt="%2.2f%%"), las=1)

情节:

Unless I miss something, I don't think this is a newbie question at all.

(Disclaimer: I think this answer isn't particularly elegant, and the graphic sucks. But hopefully it can serve as a template so somebody else can improve and post some proper code.)

Here is one way of doing it in base graphics:

  • Set up the plot without the y-axis, i.e. use yaxt="n"
  • Calculate where you want the labels to be located, e.g. using seq
  • use sprintf and round to format the labels as text with percentage sign

Some code:

set.seed(1)
x <- runif(10)
plot(x, type="h", yaxt="n")
yLabels <- seq(0.2, 0.8, 0.2)
axis(2, at=yLabels, labels=sprintf(round(100*yLabels), fmt="%2.2f%%"), las=1)

The plot:

enter image description here

无声情话 2024-12-18 02:29:39

简短的回答是“你不能”。

拿出你的表现图表。这是一段很大的编程代码,由某人编写,用于制作一个精美的图表,在某些时候,作者决定用分数值标记 Y 轴,以显示它是什么 - 也许本月解雇的经理的比例。

如果您想将其更改为百分比,则需要在该代码中的某个位置将其更改为将轴标签乘以 100,在其上粘贴“%”符号,然后绘制它们。

您可以这样做,因为 R 和性能图表包是根据允许您编辑其代码的许可证发布的。去做吧。你会学到东西。

图形实体不像 Excel 或 SPSS 中那样独立存在 - 您不能只是说“将我所有的分数轴标签重新设计为百分比”。它只是不那样工作。

The short answer is 'you cant'.

Take your performance chart. This is a big piece of programming code, written by someone to do a fancy chart and at some point the author decided to label the Y axes with fractional values to show whatever it is - the fraction of managers to fire this month maybe.

If you want to change that to percentages, then somewhere in that code you need to change it to multiply the axis labels by 100, stick a "%" sign on them, and draw them.

You can do that, because R, and that performance charts package, are released under a license that lets you edit their code. Go do it. You'll learn stuff.

Graphical entities have no independent existence like they do in Excel or SPSS - you can't just say "restyle all my fractional axis labels as percentages". It just don't work like that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文