7

R 绘图会自动设置 x 和 y 限制,以便在数据和轴之间放置一些空间。我想知道 matplotlib 是否有办法自动执行相同的操作。如果没有,对于 R 如何设置其轴限制,是否有一个好的公式或“经验法则”?

4

2 回答 2

7

在 matplotlib 中,您可以通过设置margins

import matplotlib.pyplot as plt 

fig, ax = plt.subplots()
ax.margins(0.04)
data = range(1, 11) 
ax.plot(data, 'wo') 
plt.savefig('margins.png')

边距

但是,似乎没有 rc 参数可以自动获取它。

2013 年 4 月更新

现在可以在 matplotlib master中为边距添加 rc 参数 (感谢@tcaswell)。所以它应该适用于下一个 matplotlib 版本(当前版本是 1.2.1)。

于 2012-11-21T06:57:17.743 回答
6

查看?par参数xaxs

用于 x 轴的轴间隔计算样式。可能的值是“r”、“i”、“e”、“s”、“d”。样式通常由数据范围或 xlim(如果给定)控制。
样式“r”(常规)首先在每一端将数据范围扩展 4%,然后找到一个带有漂亮标签且适合扩展范围的轴。

因此,如果我们尝试一下:

par(xaxs="r")       #The default  
plot(1:10, 1:10)

在此处输入图像描述

我们实际上可以证明它是每边范围的 +/- 4%:

abline(v=1-(diff(range(1:10)))*0.04, col="red")
abline(v=10+(diff(range(1:10)))*0.04, col="red")

在此处输入图像描述

于 2012-11-21T03:08:57.417 回答