使matplotlib图形看起来像R默认?

问题:

有没有办法使得matplotlib在绘制默认值方面与R相似,或者几乎像R一样?例如,R对待其轴的方式与matplotlib相差甚远。以下直方图
 enter image description here
有“浮动轴”向外嘀嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒嗒!此外,直方图可以“溢出”到未被标记标记的值 – 例如X轴在3结束,但直方图略微超出它。对于matplotlib中的所有直方图,如何自动实现
相关问题:散点图和线图在R中有不同的默认轴设置,例如:
 enter image description here
没有内部的蜱再次和蜱向外面。而且,在原点之后(y轴和x轴在轴的左下方交叉)稍微开始滴答,滴答在轴结束之前略微结束。这样,最低的x轴刻度和最低的y轴刻度的标签不能真正交叉,因为它们之间有一个空间,这使得情节非常优雅干净的外观。请注意,在蜱标签和蜱本身之间也有相当多的空间。
此外,默认情况下,未标记的x轴或y轴上没有刻度,表示左侧的y轴与右侧标记的y轴平行,没有刻度,x轴也是一样,再次从地块中消除混乱。
有没有办法让matplotlib看起来像这样?一般来说,默认情况下,默认的R图是多少?我非常喜欢matplotlib,但是我认为R的默认设置和开箱即用的绘图行为确实已经得到了正确的结果,而且它的默认设置很少会导致重叠的刻度标签,杂乱的或压扁的数据,所以我想要默认值尽可能地像那样。

回答:

1年后编辑:

seaborn,下面的例子变成:

import numpy as np
import matplotlib.pyplot as plt
import seaborn
seaborn.set(style='ticks')
# Data to be represented
X = np.random.randn(256)

# Actual plotting
fig = plt.figure(figsize=(8,6), dpi=72, facecolor="white")
axes = plt.subplot(111)
heights, positions, patches = axes.hist(X, color='white')
seaborn.despine(ax=axes, offset=10, trim=True)
fig.tight_layout()
plt.show()

相当容易。

原文:

这篇博文是迄今为止我见过的最好的。
 http://messymind.net/making-matplotlib-look-like-ggplot/
它并不像您在大多数“入门”类型的示例中看到的那样关注您的标准R图。相反,它试图模仿ggplot2的风格,这似乎几乎被普遍认为是时尚和精心设计的。
要获得像您一样的坐标轴,请参阅条形图中的示例,请尝试按照以下示例之一操作:http://www.loria.fr/~rougier/coding/gallery/
最后,要使轴刻度指向外部,可以编辑matplotlibrc文件来表示xtick.direction : outytick.direction : out
将这些概念结合在一起,我们得到这样的东西:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
# Data to be represented
X = np.random.randn(256)

# Actual plotting
fig = plt.figure(figsize=(8,6), dpi=72, facecolor="white")
axes = plt.subplot(111)
heights, positions, patches = axes.hist(X, color='white')

axes.spines['right'].set_color('none')
axes.spines['top'].set_color('none')
axes.xaxis.set_ticks_position('bottom')

# was: axes.spines['bottom'].set_position(('data',1.1*X.min()))
axes.spines['bottom'].set_position(('axes', -0.05))
axes.yaxis.set_ticks_position('left')
axes.spines['left'].set_position(('axes', -0.05))

axes.set_xlim([np.floor(positions.min()), np.ceil(positions.max())])
axes.set_ylim([0,70])
axes.xaxis.grid(False)
axes.yaxis.grid(False)
fig.tight_layout()
plt.show()

刺的位置可以通过多种方式指定。如果您在IPython中运行上面的代码,则可以axes.spines['bottom'].set_position?来查看所有选项。
 R-style bar plot in python
嗯是的。这不是微不足道的,但你可以靠近。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: making matplotlib graphs look like R by default?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

72 + = 81