Python 在matplotlib条形图中,如何确保以相同的宽度渲染非常小的条形图?
我正在matplotlib中创建一个条形图,其中包含许多非常窄的条形图。下面是一些示例代码:Python 在matplotlib条形图中,如何确保以相同的宽度渲染非常小的条形图?,python,matplotlib,Python,Matplotlib,我正在matplotlib中创建一个条形图,其中包含许多非常窄的条形图。下面是一些示例代码: import matplotlib.pyplot as plt import numpy as np x = np.arange(100) y = np.random.poisson(1, size=100) fig, ax = plt.subplots(figsize=(8, 1)) ax.bar(x, y, width=1, facecolor='red', edgecolor='white',
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(100)
y = np.random.poisson(1, size=100)
fig, ax = plt.subplots(figsize=(8, 1))
ax.bar(x, y, width=1, facecolor='red', edgecolor='white', linewidth=1)
ax.grid(color='white', linewidth=1, linestyle='-')
# some plot aesthetics
for spine in ['right', 'top', 'left']:
ax.spines[spine].set_visible(False)
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('none')
ax.yaxis.set_major_locator(plt.MultipleLocator(1))
ax.yaxis.set_major_formatter(plt.NullFormatter())
请注意,由于像素分辨率有限,条形图在渲染宽度上的变化非常明显
在matplotlib中创建此绘图的最佳方法是什么,同时确保渲染结果具有相等的宽度条?可能会提高输出分辨率,或保存为矢量格式(
pdf
,eps
,等等)?提高输出分辨率似乎并不总是有帮助,但如果我将savefig
中的dpi
设置为matplotlib使用的ppi
(72点/像素(?)每英寸)的倍数,则会得到相等的宽度条。这也消除了条的模糊边缘。