首页 > 编程语言 >python Matplotlib库:根据excel生成各种柱状图

python Matplotlib库:根据excel生成各种柱状图

时间:2023-11-28 13:33:05浏览次数:49  
标签:plt title python excel 图表 df 柱状图 购买 数量

我将向大家介绍如何使用Python和一些常见的库来根据Excel数据生成十种不同类型的图表。通过多维度的可视化,我们可以更全面地了解数据中的模式、趋势和关系。无论您是数据分析师、市场营销人员还是研究人员,这些图表将帮助您挖掘数据中更多的信息。


1. 准备工作

 


首先,我们需要安装一些必要的软件和库。

Python:确保已安装Python,并在系统环境变量中配置正确的路径。
Pandas:Pandas是一个强大的数据处理库,可以帮助我们读取和处理Excel数据。可以通过运行pip install pandas命令来安装Pandas。
Matplotlib:Matplotlib是一个常用的数据可视化库,用于创建各种类型的图表。

可以通过运行pip install matplotlib命令来安装Matplotlib。

python Matplotlib库:根据excel生成各种柱状图_3D

2. 数据准备

 

在开始之前,我们需要准备一个包含数据的Excel文件。假设我们有一个名为data.xlsx的Excel文件,其中包含以下数据:

年龄    性别    城市分布    购买数量    复购率

25    男      北京        10         0.6

30    女      上海        15         0.8

35    男      广州        20         0.7

40    女      深圳        12         0.5


3. 创建图表

 


接下来,让我们使用Python和Matplotlib来创建十种不同类型的图表。

a. 柱状图

柱状图是一种常用的图表类型,用于显示不同类别的数据之间的比较。

import pandas as pd
import matplotlib.pyplot as plt
# 读取Excel数据
df = pd.read_excel('data.xlsx')
# 创建柱状图
plt.bar(df['年龄'], df['购买数量'])
# 设置图表标题和轴标签
plt.title('购买数量按年龄分布')
plt.xlabel('年龄')
plt.ylabel('购买数量')
# 显示图表
plt.show()

b. 散点图

散点图可以显示两个变量之间的关系和分布。

# 创建散点图
plt.scatter(df['年龄'], df['复购率'])
# 设置图表标题和轴标签
plt.title('复购率与年龄的关系')
plt.xlabel('年龄')
plt.ylabel('复购率')
# 显示图表
plt.show()

c. 饼图

饼图用于显示不同类别之间的比例关系。

# 创建饼图
plt.pie(df['购买数量'], labels=df['城市分布'], autopct='%1.1f%%')
# 设置图表标题
plt.title('购买数量城市分布')
# 显示图表
plt.show()

d. 折线图

折线图适用于显示随时间变化的数据趋势。

# 创建折线图
plt.plot(df['年龄'], df['购买数量'], marker='o')
# 设置图表标题和轴标签
plt.title('购买数量随年龄的变化')
plt.xlabel('年龄')
plt.ylabel('购买数量')
# 显示图表
plt.show()

e. 箱线图

箱线图可以显示数据的分布情况,包括中位数、四分位数和异常值。

# 创建箱线图
plt.boxplot(df['购买数量'])
# 设置图表标题和轴标签
plt.title('购买数量分布')
plt.ylabel('购买数量')
# 显示图表
plt.show()

f. 面积图

面积图可以显示随时间变化的数据累积量。

# 创建面积图
plt.stackplot(df['年龄'], df['购买数量'], df['复购率'], labels=['购买数量', '复购率'])
# 设置图表标题和轴标签
plt.title('购买数量和复购率随年龄的变化')
plt.xlabel('年龄')
plt.ylabel('数量')
# 添加图例
plt.legend()
# 显示图表
plt.show()

g. 热力图

热力图用于显示两个变量之间的关系,并使用颜色来表示数值大小。

import seaborn as sns
# 创建热力图
sns.heatmap(df[['购买数量', '复购率']].corr(), annot=True)
# 设置图表标题
plt.title('购买数量和复购率的相关性')
# 显示图表
plt.show()
h. 极坐标图
极坐标图可以将数据以径向和角度表示。
# 创建极坐标图
plt.polar(df['年龄'], df['购买数量'])
# 设置图表标题
plt.title('购买数量的极坐标表示')
# 显示图表
plt.show()

i. 等高线图

等高线图用于显示二维数据的等高线。

# 创建等高线图
plt.contour(df['购买数量'])
# 设置图表标题
plt.title('购买数量的等高线图')
# 显示图表
plt.show()

j. 3D图

3D图可以显示三维数据的关系。

from mpl_toolkits.mplot3d import Axes3D
# 创建3D图
fig = plt.figure()
ax = fig.add_subplot(111, projectinotallow='3d')
ax.scatter(df['年龄'], df['购买数量'], df['复购率'])
# 设置图表标题和轴标签
ax.set_title('购买数量、复购率与年龄的关系')
ax.set_xlabel('年龄')
ax.set_ylabel('购买数量')
ax.set_zlabel('复购率')
# 显示图表
plt.show()


4. 总结

 

通过使用Python的Pandas和Matplotlib库,我们可以根据Excel数据轻松地创建十种不同类型的图表:柱状图、散点图、饼图、折线图、箱线图、面积图、热力图、极坐标图、等高线图和3D图。这些图表可以帮助我们更全面地理解数据、发现更多的模式和趋势,并揭示数据中更多的信息。






标签:plt,title,python,excel,图表,df,柱状图,购买,数量
From: https://blog.51cto.com/u_64214/8600139

相关文章

  • python中全局变量和局部变量作用域理解
    一:描述python中全局变量和局部变量作用域理解 二:回答1. 局部变量不能修改全局变量局部变量只作用于方法内,无法修改全局变量1#全局变量city2city="上海"34defmod_city():5#局部变量city6city="深圳"7print(city)89......
  • python中面向对象有什么特点
    一:问题python中面向对象有什么特点? 二:回答python同其他面向对象语言一样,有3个特征:封装、继承、重写 简单理解就是:封装:把一系列属性和操作封装到一个方法里面,这样想要实现某种效果,只需要简单的调个方法名字就行了,不需要在写一遍所有的操作内容继承:简单理解就是拼爹,父辈拥......
  • python面向对象方法与属性
    一:描述python中面向对象方法与属性:①静态变量:实例变量、类变量②静态方法:@staticmethod,相当于被放到类里的函数③私有属性和方法:以两个下划线开头,如__secret()④魔术方法:以两个下划线开头且以两个下划线结尾,如__secret__()⑤受保护的属性和方法:以一个下划线开头,如_secret()⑥特殊......
  • python对象嵌套
    一、描述python对象嵌套,即包含的关系。python实现:班级(名字,多个学生)、学生(学号,姓名) 二、详细说明要想实现班级里含有多个学生的这种关系,可以在班级类里嵌套学生类,将学生类信息以列表的形式存储保存即可1classStudent:2def__init__(self,s_no,s_name):3......
  • python虚拟环境
    一:问题我下了别人的工程,工程环境是用全局的python环境好,还是弄一个虚拟环境好一点,为什么? 二:回答用虚拟环境好,因为能够实现环境分离,你能在虚拟环境中安装项目特定的依赖项,而不会影响全局Python环境。从而实现不同项目维护不同的依赖关系,而不必担心版本冲突或相互影响。具体操......
  • python函数返回多个值会打包成元组
    一:问题python中函数可以一次返回多个值么? 二:回答可以的,其一次返回的多个值会被打包成元组如下所示:defdemo2(name,age):content=f"nameis{name},ageis{age}"returnname,age,contentif__name__=="__main__": data=demo2("mmkx",20) pri......
  • python函数return会结束整个函数的执行
    一:问题python函数中有for循环,对for循环进行return,函数会继续往下执行么? 二:回答不会。如下所示:defdemo3():print("a")foriinrange(3):print(i)returniprint("b")defdemo4():print("a")foriinran......
  • python中lambda函数如何理解
    一:问题python中lambda函数如何理解? 二:回答如下所示:defadd(a,b):returna+bdata=lambdaa,b:a+bif__name__=="__main__": print(add(3,4)) print(data(3,4))>>>运行结果如下:>>>7>>>7这里lambda函数,可以这样理解:lambda替代了上面的d......
  • python中调用函数,只写一个函数名是什么意思?
    一:问题python中调用函数,只写一个函数名是什么意思? 二:回答只写函数名,则调用的是函数的地址写函数名并传参,则调用的是函数返回值举例说明:1test_data=[{"name":"李白","order":1},{"name":"杜甫","order":4},2{"name":"高力士",......
  • 加固数据安全:Java助力保护Excel文件,让数据无懈可击
    前言Excel文件保护是常用的一种功能,文件保护主要有三种:添加密码,如果没有密码不允许打开文件。添加密码,如果没有密码,不能修改文件,但可以打开,只读以及另存文件。只读推荐,通常推荐打开Excel文件的用户使用只读模式打开,这种方式仅是一种提示,并非强行保护文件。给Excel添加保护情况1:下面......