使用Pandas创建水平条形图

使用Pandas创建水平条形图

柱状图以矩形条表示分类数据和相应的数据值。通常情况下,X轴代表分类值,Y轴代表数据值或频率。这被称为垂直条形图,其反面被称为水平条形图。在某些情况下,水平条形图具有更好的可读性。

Python有各种可视化库,如Matplotlib和Seaborn。Pandas库与Matplotlib紧密结合,允许通过DataFrame和Series对象直接创建图表。这篇文章探讨了使用Pandas创建水平条形图的方法。

使用Pandas DataFrame的plot实例__,可以创建各种类型的图表,包括条形图。有两种类型的柱状图表示复杂的类别。

1.分组或复合条形图–当你有一个主要类别的子类别时,该图为每个变量或子类别在相应的类别中分配一个单独的条形。
2.堆叠条形图–当你有一个主类别的子类别时,该图将子类别堆叠在一起,产生一个单条。

Pandas的bar()和barh()方法分别绘制垂直和水平条形图。基本上,DataFrame.plot(kind="bar")等同于DataFrame.plot.bar()。下面是一些使用上述函数创建不同类型条形图的例子。

简单的水平条形图

语法:

DataFrame.plot.barh()

barh()方法接受x和y参数,其中x接收分类值(默认情况下,它接收DataFrame的索引),y接收所有数字列。由DataFrame.plot()支持的关键字参数(如标题或数字大小)可以传递给barh()方法,以便定制条形图。给出的是一个描述水平条形图的实现,它代表了喜欢特定类别美食的人数。

例1:

# Import required libraries
import pandas as pd
  
# Create a sample dataframe
df = pd.DataFrame({'Cuisine': ['Italian', 'Indian', 'Mexican', 'Chinese'],
                   'Number of People': [20, 25, 15, 10]})
  
# Plot a bar chart
df.plot.barh(x='Cuisine', y='Number of People',
             title='Cuisine Preference', color='green')

输出:

使用Pandas创建水平条形图

复式水平条形图

从上面的例子来看,如果人们被分为男性和女性的分组,那么我们可以用复式水平条形图来表示这个数据。这个例子显示了一个水平条形图,用两种方法表示喜欢特定类别菜肴的男性和女性的数量。

例子2:

使用barh()方法的柱状图

# Import required libraries
import pandas as pd
  
# Create a sample dataframe
df = pd.DataFrame({'Number of Males': [10, 15, 25, 14],
                   'Number of Females': [20, 25, 15, 10]},
                  index=['Italian', 'Indian', 'Mexican', 'Chinese'])
  
# Plot grouped horizontal bar chart
df.plot.barh(title="Gender wise Cuisine preference chart",
             color={"green", "pink"})

输出:

使用Pandas创建水平条形图

示例 3:

使用plot()方法绘制条形图

# Import required libraries
import pandas as pd
  
# Create a sample dataframe
df = pd.DataFrame({'Number of Males': [10, 15, 25, 14],
                   'Number of Females': [20, 25, 15, 10]},
                  index=['Italian', 'Indian', 'Mexican', 'Chinese'])
  
# Plot stacked horizontal bar chart
df.plot(kind="barh", title="Gender wise Cuisine preference chart",
        color={"green", "pink"})

输出:

使用Pandas创建水平条形图

堆叠的水平条形图

堆积式条形图在表示不同子群体的构成或贡献方面非常有用。下面的例子显示了一个水平条形图,表示喜欢特定类别菜肴的男性和女性的百分比。堆叠式水平条形图将数据框架中每个观察点的数值并排放在一个条形图中。然而,它堆积的是数值而不是整体的百分比。因此,我们首先将数据值转换为整体的百分比,然后使用barh()函数,将堆叠参数设置为True,创建一个填充的堆叠水平条形图。

例子4

# Import required libraries
import pandas as pd
  
# Create a sample dataframe
df = pd.DataFrame({'Number of Males': [10, 15, 25, 14],
                   'Number of Females': [20, 25, 15, 10]},
                  index=['Italian', 'Indian', 'Mexican', 'Chinese'])
  
# Convert numeric values to percentage of whole
percent_df = df.apply(lambda x: (x * 100) / sum(x), axis=1)
  
# Plot stacked horizontal bar chart
percent_df.plot.barh(stacked=True,
                     title="Male-Female percentage composition of Cuisine preferences")

输出:

使用Pandas创建水平条形图

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程