Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib条形图中,如何确保以相同的宽度渲染非常小的条形图?_Python_Matplotlib - Fatal编程技术网

Python 在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',

我正在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', 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点/像素(?)每英寸)的倍数,则会得到相等的宽度条。这也消除了条的模糊边缘。