1年后编辑:
With 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/ http://messymind.net/making-matplotlib-look-like-ggplot/
它并不像您在大多数“入门”类型示例中看到的那样专注于标准 R 图。相反,它试图模仿 ggplot2 的风格,后者似乎几乎被普遍认为是时尚且设计精良的。
要获得像条形图中所示的轴脊柱,请尝试遵循此处的前几个示例之一:http://www.loria.fr/~rougier/coding/gallery/ http://www.loria.fr/%7Erougier/coding/gallery/
最后,要使轴刻度线指向外侧,您可以编辑matplotlibrc
文件要说xtick.direction : out
and ytick.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?
查看您的所有选项。
嗯是的。这并不完全是微不足道的,但你可以接近。