使用堆积条形图时,Matplotlib 未正确绘制对数刻度

南迪普·德文德拉

我有 5 个列表,您可以在下面看到

always_failing_list_tt = [0.221,0.221,0.221, 0.221]
always_passing_list_tt = [0.335,0.335,0.335, 0.335]
all_test_tt = [108.281]
keep_list_tt = [93.104,85.011,76.111,70.932]
eppm_plot = [0,35482,70517,101074]

我想创建一个堆积条形图,使得第二条情节我相比all_test_tt是的组合(always_passing_list_tt+ always_failing_list_tt+ keep_list_tt

我使用下面的代码来做到这一点:

from matplotlib.ticker import ScalarFormatter
x = np.arange(len(eppm_plot)) 
width = 0.35  # the width of the bars
fig, ax1 = plt.subplots(figsize = (25,5))

rects1 = ax1.bar(x - width/2, all_test_tt, width, label='full_block_coverage_tt', color = 'y')
rects4 = ax1.bar(x+ width/2, keep_list_tt, width,bottom =list(np.add(always_failing_list_tt,always_passing_list_tt)) ,label = 'lean_coverage_tt', color='#fbb4ae', edgecolor='#fbb4ae')
rects2 = ax1.bar(x+ width/2, always_failing_list_tt ,width,label = 'always_failing_list', color='#b3cde3', edgecolor='#b3cde3')
rects3 = ax1.bar(x + width/2, always_passing_list_tt,width,bottom = always_failing_list_tt, label = 'always_passing_list',color='#ccebc5', edgecolor='#ccebc5')

ax1.set_ylabel('Test time in seconds')
ax1.set_xlabel('EPPM in e6')
ax1.set_title('Full, Lean coverage TT vs EPPM for ATPG,FUNC and MBIST blocks combined')
ax1.set_xticks(x)
ax1.set_xticklabels(eppm_plot)
ax1.legend()
ax1.bar_label(rects1)
ax1.bar_label(rects4)
ax1.bar_label(rects2, padding =-3)
ax1.bar_label(rects3, padding = 12)
ax1.set_yscale("log")
fig.tight_layout()
plt.show()

不使用对数标度绘图

不使用对数刻度绘图

用对数标度绘图

用对数标度绘图

正如您所看到的always_failing_list_tt,即使报告了时间,即使在对数刻度中也没有显示。有人能告诉我这是什么问题吗?非常感谢您的帮助

和风

你的代码工作正常。在这两种情况下,条形都被正确绘制,但是它们相对于其他条形来说太小,或者它们在绘图区域之外。

没有对数刻度

放大图的底部ax1.set_ylim(0, 1)::

在此处输入图片说明

如果不缩放,您将无法看到它,因为与其他条形相比,它们太小了。

带对数刻度

放大图的底部ax1.set_ylim(1e-1, 1.5e2)::

在此处输入图片说明

如果不缩放,您将无法看到它,因为 y 轴的自动调整大小会将底部的蓝色条从图中切掉。


使用对数刻度要小心:你的条形从 开始0,这意味着在对数刻度中它们从 开始变长-∞因此,在对数刻度没有一个定义的值从开始的情节:你可以任意选择从开始1e-11e-21e-3等等。无论您选择什么值,都会影响绘图方面和条形高度的相对比例:

ax1.set_ylim(1e-5, 1.5e2) 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用matplotlib绘制堆积的条形图,保持使用python时熊猫数据框的顺序

绘制堆积的条形图matplotlib熊猫

Matplotlib Seaborn - 绘制多个堆积条形图

如何使用hvplot绘制堆积的条形图?

使用python从csv文件中绘制堆积的条形图

如何使用Pandas Python绘制堆积的条形图

熊猫-绘制堆积的条形图

熊猫-绘制堆积的条形图

绘制多个堆积条形图

angularJS库,用于绘制对数刻度的条形图

将值绘制为未堆积的条形图

使用matplotlib和子图绘制多个条形图

带有 ggplotly 的堆积条形图未正确显示

尝试绘制堆积的条形图时出现形状不匹配错误消息

当数据不是周期性的时,如何基于堆积条形图绘制

使用字典使用matplotlib绘制条形图

如何在 Python 中使用 pandas 和 matplotlib 绘制条形图时删除条形之间的空间?

在dc.js和crossfilter.js中使用堆积条形图过滤时,为什么我的饼图显示不正确的组?

Python:如何使用matplotlib在python中绘制条形图?

使用matplotlib在python中绘制漂亮的条形图

使用Matplotlib.pyplot在python中绘制条形图

在python中使用matplotlib绘制多个分组的条形图

尝试使用Matplotlib在条形图上绘制线形图

ggplot 分组堆积条形图更改刻度标签

如何使用Pandas中的变量之一绘制堆积的条形图?

Pandas 和 matplotlib 堆积条形图,主要和次要 x 刻度组合在一起

Python:在Facet网格中绘制堆积的条形图

在熊猫中绘制部分堆积的条形图

如何为熊猫分组特征绘制堆积的条形图?