在 R 中以对数比例绘制包含零的数据的散点图

发布于 2024-10-13 00:49:33 字数 410 浏览 5 评论 0原文

我正在尝试使用“对”绘制一些散点图对。 我的数据框看起来像:

    >e
    X Y Z
    0 0 0
    2 3 4
    0 3 4
    3 3 3

这里是一个完全标准的数据框。

我用它来绘制我的散点图,同样没有什么花哨的:

pairs(~X+Y+Z, data=e, log="xy")

它工作得很好,但它不绘制标签。但是,如果我删除命令中的 log="xy",则标签会很好地绘制。所以我想这与我希望散点图采用对数比例有关。

所以我的问题是我该怎么办? 我应该事先删除所有带零的行吗(你该怎么做?) 有没有一个魔术可以让我有 log="xy" 并标记我的散点图?

如果不清楚,请告诉我。

I am trying to plot some pairs of scatterplots using "pairs".
My dataframe look like :

    >e
    X Y Z
    0 0 0
    2 3 4
    0 3 4
    3 3 3

A completely standard dataframe here.

I use this to plot my scatter plots, again nothing fancy:

pairs(~X+Y+Z, data=e, log="xy")

It works great, but it doesn't plot the labels. However if I remove the log="xy" in the command, then the labels are plotted nicely. So I guess it has to do with the fact that I want my scatterplots to be in log scale.

So my question is what shall I do?
Shall I remove all lines with zeros in it before hand (how do you do that?)
Is there a magic trick that will let me have log="xy" and my scatterplots labeled?

Please let me know if it is not clear.

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

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

发布评论

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

评论(1

爱已欠费 2024-10-20 00:49:33

你忽略了这一点(我将你的数据框称为DF):

R> pairs(~X+Y+Z, data=df, log="xy")
There were 30 warnings (use warnings() to see them)

如果你查看这三十个警告,你会发现

  • 你无法在对数刻度上绘制包含零的数据(我猜你知道为什么)

  • log 不是 pairs()< 的可识别参数/code>

,因此,如果您想要在日志中绘制对数图,您可能必须自己获取日志(并且添加一个小 epsilon 或使用像 log(1 + x) 这样的转换并对该数据调用 pairs()

编辑 最简单的是 。可能pairs(~X+Y+Z, data=log(1+DF))

You ignored this (where I called your data frame DF):

R> pairs(~X+Y+Z, data=df, log="xy")
There were 30 warnings (use warnings() to see them)

and if you look at these thirty warnings, you will see that

  • you cannot plot data containing zeros on a log scale (and I guess you know why)

  • log is not a recognised parameter for pairs()

So if you want a pairs plot in logs, you may have to takes logs yourself (and either add a small epsilon or use a transformation like log(1 + x) and call pairs() on that data.

Edit The easiest is probably pairs(~X+Y+Z, data=log(1+DF))

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