我使用matplotlib的hist()函数或bar()制作直方图,我想使用> 10,000个bin(一个bin来表示大型实体每个坐标的计数)。有没有办法在创建图形时在垂直条之间创建更多的空白?目前,直方图的每个条之间没有空格。例如:
# imports
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
import random
# Generating dummy data
coordinate_counts = []
for __ in range(1,100000) :
coordinate_counts.append(random.randrange(1,10000))
# plotting
fig, ax1 = plt.subplots()
ax1.hist(coordinate_counts,bins=range(1,10000))
fig.savefig('temp.png')
我尝试过使用rwidth()并改变其值,并尝试使用figsize()并简单地扩展绘图的大小,但最终结果总是将每个垂直条放在彼此旁边中间没有空格。
答案 0 :(得分:15)
参数rwidth
指定条形宽度相对于纸槽宽度的宽度。例如,如果您的bin
宽度为1且rwidth=0.5
,则条形宽度将为 0.5 。在栏的两侧,您将有一个 0.25 的空间。
介意:这会在连续的条形之间产生0.5的空间。根据您拥有的垃圾箱数量,您将无法看到这些空间。但是他们出现的垃圾箱数量减少了。