#18 可视化基础4-簇形柱状图、百分比堆积柱状图、并列子图

目录

簇形柱状图

「不指定x轴和y轴数据」

plot.bar()

「不指定x轴和y轴数据」

plot.bar("指定为x轴的columns",["指定为y轴的columns1","指定为y轴的columns2",···])

e.g.对比每层楼的每月销量情况​​​​​​​

「Dataframe的一列\Series」-绘制柱状图

Dataframe的一列\Series.plot.bar()

百分比堆积柱状图

plot.bar("指定为x轴的columns",["指定为y轴的columns1","指定为y轴的columns2",···],stacked=True)

并列子图 

通过matplotlib.pyplot模块在子图上进行绘制

plt.subplot(子图的行数,子图的列数,子图的序号)

避免坐标轴遮挡-旋转x轴刻度

plt.xticks(rotation=度数)

避免坐标轴遮挡-调整子图布局

plt.tight_layout()

在子图上使用pandas模块绘图

ax=plt.gca()


 绘制图像(叠加图)

matplotlib.pyplot模块+pandas模块
1. 百分比堆积柱状图(叠加图)
2. 簇形柱状图(叠加图)
3. 并列子图(叠加图)


 一般情况下,簇形柱状图百分比堆积柱状图这两种图像需要展示的数据往往是由多个分类组成,也就是要用到一个DataFrame或多个Series中的数据。
在使用matplotlib.pyplot绘制图像的同时,搭配pandas模块。

pandas模块本身具有绘图功能,此功能依赖于matplotlib模块,可简化从DataFrame和Series生成可视化的过程。


簇形柱状图

用来比较某一维度上的多个数据。
e.g.每一层楼的每月销量,i.e.同一维度上的多个数据。
对一个DataFrame对象,使用pandas模块中的plot.bar()函数。

「不指定x轴和y轴数据」

plot.bar()

对一个DataFrame对象使用函数时,行索引index会作为x轴每一行数值类型的值会被分组到并排的柱子中作为y轴。 
同时,会根据x轴和y轴的数据,自动生成x轴标题和图例,以及x轴刻度会自动旋转90度。

「不指定x轴和y轴数据」

plot.bar("指定为x轴的columns",["指定为y轴的columns1","指定为y轴的columns2",···])

调用plot.bar()函数时,把DataFrame的列索引(columns)\包含列索引(columns)的列表,依次传入该函数中,指定x轴和y轴。

e.g.对比每层楼的每月销量情况

做完绘图准备工作后,对data变量使用plot.bar()函数,并把列索引"month"和列索引列表["first_floor","second_floor","third_floor"]依次传入到该函数中,指定x轴和y轴。

·列索引"month"被自动设置为x轴的标题

·用于指定y轴的列索引们会自动生成对应的图例

·x轴刻度会自动旋转90度

一个DataFrame对象 

读取文件后,把生成的DataFrame对象赋值给了变量data。表示将对data进行操作。

plot.bar()函数 

x轴数据 

传入列索引"month",指定x轴数据

y轴数据 

一个列表,包含对应的多列索引(columns)"first_floor","second_floor","third_floor"指定这三列为y轴数据。 

根据下图的数据,以"month"为x轴,绘制对比"first_floor"、"second_floor"和"third_floor"销量的簇形柱状图。

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我了解您的要求,以下是回答: 为了实现您的要求,我使用Python语言和Matplotlib库来可视化展示Titanic数据集的数据分布。 首先是舱位等级和存活的柱状图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 统计每个舱位等级的存活人数 survived_by_pclass = titanic_data.groupby('Pclass')['Survived'].sum() # 绘制柱状图 plt.bar(survived_by_pclass.index, survived_by_pclass.values) plt.xticks([1, 2, 3]) plt.xlabel('Pclass') plt.ylabel('Survived') plt.title('Survived by Pclass') plt.show() ``` 接下来是登陆港口和存活的柱状图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 统计每个登陆港口的存活人数 survived_by_embarked = titanic_data.groupby('Embarked')['Survived'].sum() # 绘制柱状图 plt.bar(survived_by_embarked.index, survived_by_embarked.values) plt.xlabel('Embarked') plt.ylabel('Survived') plt.title('Survived by Embarked') plt.show() ``` 然后是年龄和舱位等级的箱线图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 绘制箱线图 plt.boxplot([titanic_data[titanic_data.Pclass == 1].Age.dropna(), titanic_data[titanic_data.Pclass == 2].Age.dropna(), titanic_data[titanic_data.Pclass == 3].Age.dropna()]) plt.xticks([1, 2, 3], ['1st', '2nd', '3rd']) plt.xlabel('Pclass') plt.ylabel('Age') plt.title('Age by Pclass') plt.show() ``` 最后是年龄和存活的直方图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 绘制直方图 plt.hist([titanic_data[titanic_data.Survived == 0].Age.dropna(), titanic_data[titanic_data.Survived == 1].Age.dropna()], bins=20, label=['Not survived', 'Survived']) plt.xlabel('Age') plt.ylabel('Frequency') plt.title('Survival by Age') plt.legend() plt.show() ``` 以上是对Titanic数据集的数据分布可视化展示,希望能够满足您的需求。如有其他问题,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值