绘制列表列表的多个条形图

时间:2019-05-09 11:23:01

标签: python matplotlib

我有两个这样的列表列表。

list1=[[0,1],[1,2.5],[2,3],[3,5.6]]
list2=[[0,2],[2,5],[3,7]]

我需要一个条形图来比较两个列表。 x轴应具有list1的每个元素的第一整数(0,1,2,3等)。条形图应并排显示每个列表中每个元素的第二个数字。

我尝试了以下方法,但似乎无法将图形分开。这些条形图相互重叠。

plt.bar(*zip(*list1))
plt.bar(*zip(*list2))

预期输出将使条形图并排。

2 个答案:

答案 0 :(得分:2)

您可以手动移动小节并按宽度播放,以使它们彼此相邻出现。例如:

 app = Flask(__name__)

app.config.from_object(Config)

db = SQLAlchemy(app)

migrate = Migrate(app, db)


@app.route('/')
 def index():
     conn = sqlite3.connect('WO1.db')

     with conn:
         cur1 = conn.cursor()
         cur1.execute("insert into work_order (Title, Link, Status) values (?,?,?)",
                     ('iikii', 'ijkoijj', '66hhuhij'))
       conn.close()

       return render_template('index.html')

结果:
plot_result

(请注意,此代码假定示例中为x的整数。)

答案 1 :(得分:2)

您也可以使用pandas

dfs = [pd.DataFrame(np.array(lst), 
                    columns=['idx', i]).set_index('idx')
          for i,lst in enumerate([list1,list2])]

df = pd.concat(dfs, axis=1)

df.plot.bar()

enter image description here