Seaborn 条形图和堆叠条形图
Manav Narula
2021年10月2日
2021年4月29日
条形图用于以矩形条表示观测值。Python 中的 seaborn 模块使用 seaborn.barplot()
函数创建条形图。
请参考下面的代码,为商品在不同日期的价格创建一个简单的条形图。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Price 1": [7,1,5,6,3,10,5,8],
"Day": [1,2,3,4,5,6,7,8]})
s1 = sns.barplot(x = 'Day', y = 'Price 1', data = df, color = 'red')
在本教程中,我们将学习如何在 Seaborn 中创建堆叠的条形图。
当我们谈论堆叠的条形图时,我们的意思是在同一张图中表示两组或更多组观察值。这使整个图形具有堆叠的外观,并且在第二组上放置了一组观察值。
我们没有可以直接创建这种堆叠条形图的函数,但是我们可以使用传统的 seaborn.barplot()
方法绘制两个单独的条形图,并将它们放置在彼此的顶部。
我们在以下代码中实现此逻辑。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Price 1": [7,1,5,6,3,10,5,8],
"Price 2" : [1,2,8,4,3,9,5,2],
"Day": [1,2,3,4,5,6,7,8]})
s1 = sns.barplot(x = 'Day', y = 'Price 1', data = df, color = 'red')
s2 = sns.barplot(x = 'Day', y = 'Price 2', data = df, color = 'blue')
在上图中,我们在条形图上绘制了两种商品在不同日期的价格。
如果需要,我们可以在同一条形图上表示一组分类值的观察值。最终结果将不是堆叠外观,而是代表同一条图上多个条上的观测值。
请参考以下代码。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({"Price": [7,1,5,6,3,10,5,8],
"Product": ['C1','C2','C1','C2','C1','C2','C1','C2'],
"Day": [1,1,2,2,3,3,4,4]})
s = sns.barplot(x ="Day", y = 'Price', data = df, hue = "Product")
我们能够在同一张图上绘制 4 个不同日期的 2 种产品的价格。我们给 x 和 y 轴提供条形图的期望值,并使用 hue
参数对不同类别的观察进行分组,以便在同一图形上创建不同的条形。这样,最终输出将更加整洁,并且仅使用一个函数即可完成所有操作。
Author: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn