Man*_*rma 0 python matplotlib pandas subplot
我有一个只包含数字列的pandas数据框,并且我正在尝试为所有功能创建单独的直方图
ind group people value value_50
1 1 5 100 1
1 2 2 90 1
2 1 10 80 1
2 2 20 40 0
3 1 7 10 0
3 2 23 30 0
Run Code Online (Sandbox Code Playgroud)
但是在我的现实生活数据中有50多个列,如何为所有列创建单独的图
我试过了
df.plot.hist( subplots = True, grid = True)
Run Code Online (Sandbox Code Playgroud)
它给了我一个重叠的不清楚的情节。
如何使用pandas subplots = True排列它们。下面的示例可以帮助我获取(2,2)网格中四列的图形。但对于所有50列来说,这都是一个漫长的方法
fig, [(ax1,ax2),(ax3,ax4)] = plt.subplots(2,2, figsize = (20,10))
Run Code Online (Sandbox Code Playgroud)
ann*_*hak 13
如果你想分别绘制它们(这就是我在这里结束的原因),你可以使用
for i in df.columns:
plt.figure()
plt.hist(df[i])
Run Code Online (Sandbox Code Playgroud)
Imp*_*est 10
熊猫subplots=True将在单个列中排列轴。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame(np.random.rand(7,20))
df.plot(subplots=True)
plt.tight_layout()
plt.show()
Run Code Online (Sandbox Code Playgroud)
在此tight_layout不应用,因为该图形太小而无法很好地排列轴。不过,您可以使用更大的数字(figsize=(...))。
为了使轴在网格上,可以使用layout参数,例如
df.plot(subplots=True, layout=(4,5))
Run Code Online (Sandbox Code Playgroud)
如果通过创建轴可以达到相同的目的。 plt.subplots()
fig, axes = plt.subplots(nrows=4, ncols=5)
df.plot(subplots=True, ax=axes)
Run Code Online (Sandbox Code Playgroud)
此任务的替代方法是使用具有超参数“布局”的“hist”方法。使用@ImportanceOfBeingErnest 提供的部分代码的示例:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame(np.random.rand(7,20))
df.hist(layout=(5,4), figsize=(15,10))
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3379 次 |
| 最近记录: |