如何在MatplotLib中使用子图绘制BarPlot或直方图?

时间:2019-02-26 16:44:04

标签: python pandas matplotlib seaborn

  • 我想为数据绘制条形图/直方图的网格。我的数据包含 1 NUMERIC和3 CATEGORICAL Column
  • PAIRGraph不适合我的目的,因为我只有1个数字列和3个分类列

试图参考文档https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html

但是,我找不到满足我要求的确切方法。

使用演示代码,我只能绘制LineGraph。但是,我需要绘制条形图。

fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.linspace(0, 5, 11)
axes[0].plot(x, x**2, x, np.exp(x),x,20*x)
axes[0].set_title("Normal scale")
axes[0].plot

axes[1].plot(x, x**2, x, np.exp(x))
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)");

在我刚开始学习时,请随时纠正我的方法或指导我。 enter image description here

2 个答案:

答案 0 :(得分:3)

如果您确切指定要用于barhist的内容,我可以进行修改,但是通常只是将plot更改为所需的图表类型< / p>

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.linspace(0, 5, 11)
axes[0].bar(x,x**2) # bar plot
axes[0].set_title("Normal scale")
axes[0].plot

axes[1].hist(x) # histogram
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)");

plt.show()

答案 1 :(得分:0)

浏览Matplotlip子图轴的API文档后,我发现了绘制不同图形的方法,而不仅仅是折线图。

https://matplotlib.org/api/axes_api.html

默认:-

    默认情况下,
  • axes[0].plot绘制折线图。

自定义图片:-

  • axes[0].bar可用于在选定的子图

  • 中绘制 BAR图
  • axes[0].scatter可用于在选定的子图

  • 中绘制散点图
  • axes[0].hist可用于绘制直方图。在选定的子图

与上述示例类似,可以使用以下API绘制更多图形:- enter image description here