条形图未显示 0

问题描述 投票:0回答:2

我的条形图的 y 轴不是从 0 开始的。 它以要显示的三个值中的最小值作为起点。 我希望它从零到十五

data = {'Average Time of 1st Instance':average_value1, 'Average Time of 2nd Instance':average_value2, 'Average Time of 3rd Instance':average_value3}  
instances = list(data.keys())  
times = list(data.values())  
fig = plt.figure(figsize = (10, 5))
plt.bar(instances, times, color ='blue', width = 0.4)
plt.xlabel('Instance of ++HSS')
plt.ylabel('Time in Seconds')
plt.title('Time Taken to run the Three Instances of ++HSS')`  
plt.show()

这是我得到的图表:

使用设置 y 轴限制

plt.ylim(0, 15)
也不起作用

数据:

average_value1 = 8.88

average_value2 = 11.86

average_value3 = 11.36

python matplotlib graph yaxis
2个回答
0
投票

问题是您的

average_value
值是字符串而不是数字。如果你改变线路:

times = list(data.values())

改为:

times = [float(d) for d in data.values()]

要将值显式转换为浮点数,您应该得到您所期望的结果。

或者,在创建字典时转换它们,即

data = {
    'Average Time of 1st Instance': float(average_value1),
    'Average Time of 2nd Instance': float(average_value2),
    'Average Time of 3rd Instance': float(average_value3)
} 

0
投票

您是否尝试过添加刻度值?与此相关的一些内容:

    yticks = np.linspace(0,15,3) 
    plt.yticks(yticks, yticks)
© www.soinside.com 2019 - 2024. All rights reserved.