Python 如何生成带有截断条的类似条形图的绘图?

Python 如何生成带有截断条的类似条形图的绘图?,python,list,matplotlib,plot,graph,Python,List,Matplotlib,Plot,Graph,假设我有两个列表。 我从原始的2dim列表中提取了最小、最大列表 循环原始列表,我提取列表。提取的列表的值为-100s和最小列表 例如,从[0,0,1,3,10]列表中,返回[-100,-100,0] 在这里,-100表示列表中最小值的数量(在本例中为0的数量)。0是列表的最小值 original=[[0,0,1,3,10],[4,2,2,5,10,15],[3,0,0,0,4,10]…] 最小值=[-100,-100,0,-100,-100,2,-100,-100,-100,…] 最大值=[-

假设我有两个列表。 我从原始的2dim列表中提取了最小、最大列表

循环原始列表,我提取列表。提取的列表的值为-100s和最小列表

例如,从[0,0,1,3,10]列表中,返回[-100,-100,0]

在这里,-100表示列表中最小值的数量(在本例中为0的数量)。0是列表的最小值

original=[[0,0,1,3,10],[4,2,2,5,10,15],[3,0,0,0,4,10]…]
最小值=[-100,-100,0,-100,-100,2,-100,-100,-100,…]
最大值=[-100,-100,10,-100,-100,15,-100,-100,-100,10,…]
有了这个列表,我想画如下的条形图。

如果遇到-100,就打发时间。如果不是,则从最小值到最大值绘制条形图

此外,我想给一个标准不同的颜色

我找不到好的例子,或从谷歌的搜索结果


我可以得到一些提示吗?

下面的代码使用以下方法实现了所需的结果:

输出:


请不要为变量命名
min
max
,这将禁用使用相同名称调用函数的可能性。matplotlib的
有一个
底部
参数@当然,我之所以把这个列表命名为min,max是因为我展示了这个例子。谢谢你的观点:)我永远不会在我的代码中这样命名。@ImportanceOfBeingErnest哦,我的上帝。。。非常感谢。这是我的错。我从来没有想过找到
bar
的参数。。。我只是想找一种图表,这才是我真正想要的。非常感谢。它运行良好:)
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors

min_vals = [-100, -100, 0, -100, -100, 2, -100, -100, -100, -100, 0]
max_vals = [-100, -100, 10, -100, -100, 15, -100, -100, -100, -100, 10]
colours = [1, 1, 2, 1, 1, 3, 1, 1, 1, 1, 2]

w = len(min_vals)
h = max(max_vals) - min(x for x in min_vals if x != -100)

arr = np.ones((h, w), dtype="int")

for i, vals in enumerate(zip(min_vals, max_vals)):
    if -100 not in vals:
        arr[vals[0]:vals[1]:,i] = np.array([colours[i]]*(vals[1]-vals[0]))

cmap = colors.ListedColormap(['white', 'green', 'red'])
fig, ax = plt.subplots(figsize=(6,6))

ax.imshow(arr, cmap=cmap)
plt.gca().invert_yaxis()
plt.yticks(range(h))
plt.xticks(range(w))
plt.show()