一尘不染

使用pandas覆盖多个直方图

python

我有两个或三个具有相同标题的csv文件,并希望绘制同一列上彼此重叠的每一列的直方图。

以下代码为我提供了两个单独的图形,每个图形都包含每个文件的所有直方图。是否有一种紧凑的方法可以使用pandas / matplotlib将它们一起绘制在同一图形上?我想象接近于但使用数据框。

码:

import pandas as pd
import matplotlib.pyplot as plt

df =  pd.read_csv('input1.csv')
df2 = pd.read_csv('input2.csv')
df.hist(bins=20)
df2.hist(bins=20)

plt.show()

阅读 512

收藏
2021-01-20

共1个答案

一尘不染

In [18]: from pandas import DataFrame

In [19]: from numpy.random import randn

In [20]: df = DataFrame(randn(10, 2))

In [21]: df2 = DataFrame(randn(10, 2))

In [22]: axs = df.hist()

In [23]: for ax, (colname, values) in zip(axs.flat, df2.iteritems()):
   ....:     values.hist(ax=ax, bins=10)
   ....:

In [24]: draw()

在此处输入图片说明

2021-01-20