我有多个数据集,我想合并成一个直方图。不幸的是,我的数据显示了不同的范围。
使用简单的range=(0,1)
参数会触发奇怪的行为。
这就是它应该看起来的样子:
x1c 0d1x的数据
并且当前当数据具有0-1的范围时是这样。
但有时它没有,我得到:
的
这里我想强制0-1范围。
但当我和axs.hist(plot_data, range=(0,1),color=colors,label=plot_label, histtype='bar')
个
我得到
我无法解释为什么会发生这种情况。
这就是代码:
fig, axs = plt.subplots(1,1,tight_layout=True)
fig.set_size_inches(7, 4)
# Define colors for each histogram
colors = ['g', 'b', 'r', 'purple']
# make combined histogram for all error conditions
# plot the histogram
axs.hist(plot_data,color=colors,label=plot_label, histtype='bar')
# Put a legend to the right of the current axis
axs.legend(loc='center left',bbox_to_anchor=(1, 0.5))
# set the axis labels
axs.set_xlabel(f"Similarity: {wildcards.metric}")
axs.set_ylabel("Frequency")
# have the x-axis go increasing from left to right
axs.invert_xaxis()
# ensure proper layout
fig.tight_layout()
# save the histogram
fig.savefig(Path(output.hist))
字符串
并且一些示例数据是:
[array([
'1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0','1.0',
'1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0',
'1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0',
'1.0', '1.0', '1.0'], dtype='<U46'),
array(['
1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0',
'1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0',
'1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0', '1.0',
'1.0', '1.0', '1.0'], dtype='<U46'),
array([
'0.25', '0.3', '0.3', '0.3', '0.3', '0.3', '0.0', '0.0', '0.3',
'0.0', '0.3', '0.3', '0.0', '0.0', '0.3', '0.5', '0.4', '0.0',
'0.5', '0.5', '0.5', '0.0', '0.4', '0.0', '0.0', '0.6', '0.3',
'0.1', '0.0', '0.0'], dtype='<U46'),
array([
'0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0','0.0','0.0',
'0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0',
'0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0', '0.0',
'0.0', '0.0', '0.0'], dtype='<U46')]
型
我已经尝试了所有可能的range
和bin
组合。
1条答案
按热度按时间ftf50wuq1#
你的数组充满了字符串值,但你传递的是一个需要浮点数/int值的范围参数。我不知道为什么你的值是字符串,但是使用浮点值(而不是使用
dtype = '<U46'
)会导致图形的行为与range参数的预期一样:字符串
x1c 0d1x的数据