python-matplotlib绘制数据图形

python-matplotlib绘制数据图形

概要

matplotlib.pyplot、numpy、pandas的使用

整体架构流程

安装到使用

名词解释

图形:

  1. 折线图:折线图可以用于显示随时间变化的趋势。例如:你可以绘制一个折线图来比较一个城市每年的人口变化;
  2. 柱状图:柱状图可以用于比较不同类别的数据。例如:你可以绘制一个柱状图来比较不同品牌手机的市场份额;
  3. 散点图:散点图可以用于展示两个变量之间的关系。例如:你可以绘制一个散点图来展示广告投入与销售额之间的关系;
  4. 饼图:饼图可以用于显示整体中各部分的占比。例如:你可以绘制一个饼图来展示一个公司各部分的收入占比;
  5. 热力图:热力图是一种用颜色来表示数据密度的图形,通常用于显示地理数据网站用户行为数据。热力图的颜色越深,代表数据密度越高,颜色越浅,代表数据密度越低。

技术:

  • matplotlib:Matplotlib是⼀个Python 2D绘图库,与numpy、pandas共享数据科学三剑客的美誉,也是很多⾼级可视化库的基础。Matplotlib试图让简单的事情变得更简单,让⽆法实现的事情变得可能实现。只需⼏⾏代码即可⽣成绘图,直⽅图,功率谱,条形图,错误图,散点图等。
    matplotlib,是matrix + plot + library的缩写。
  • seaborn:Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了各种高级的绘图功能,包括折线图、散点图、直方图等

技术细节

matplotlib不是python内置库,需要手动安装,依赖numpy库

  • 下载方式:
 pip install matplotlib
  • 导包
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns
  • 设置中文和负号显示(matplotlib默认不显示中文和负号,需要自己手动添加)
# 显示中文
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['font.size']=10
# 显示负号
plt.rcParams['axes.unicode_minus']=False
  • 每种图形都有自己默认的颜色和形状,可以通过画图函数的参数自定义

如:以折线图为例

plt.plot(years,population, # x,y轴的数据
color='black', # 线的颜色
marker='D', # 点的填充颜色
linestyle='--', # 线的形式
markeredgecolor='green' # 点的边框颜色
,markersize='5' # 点的大小)

折线图:plt.plot()

# plt.rcParams['axes.unicode_minus']=False
years = list(range(2015,2024))
population = [20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000, 60000]
plt.plot(years,population,color='black',marker='D',linestyle='--',markeredgecolor='green',markersize='5')
plt.xlabel('Years')
plt.ylabel('Population')
plt.title('Cities Population Changes Years')
plt.show()

在这里插入图片描述
柱状图:plt.bar()

# 假设的数据
brands = ['Apple', 'Samsung', 'Huawei', 'Xiaomi', 'Others']
market_share = [30, 25, 20, 15, 10]
# 柱状图:柱状图可以用于比较不同类别的数据。例如:你可以绘制一个柱状图来比较不同品牌手机的市场份额

plt.bar(brands,market_share)
plt.ylabel('market_share(%)')
plt.xlabel('Brands')
plt.title('Market Share')
plt.show()

在这里插入图片描述
散点图:plt.scatter()

# # 假设的数据
advertising_spent = [10000, 20000, 30000, 40000, 50000]
sales = [50000, 60000, 75000, 90000, 110000]
# 散点图:散点图可以用于展示两个变量之间的关系。例如:你可以绘制一个散点图来展示广告投入与销售额之间的关系
plt.scatter(advertising_spent,sales)
plt.ylabel('sales')
plt.xlabel('advertising_spent')
plt.title('Advertising Spent vs Sales')
plt.show()

在这里插入图片描述
饼图:plt.pie()

# 假设的数据
departments = ['Sales', 'Marketing', 'Product', 'HR', 'Finance']
revenue = [250000, 350000, 450000, 300000, 200000]
# # 饼图:饼图可以用于显示政体中各部分的占比。例如:你可以绘制一个饼图来展示一个公司各部分的收入占比。
plt.pie(revenue,labels=departments)
plt.title('Revenue Share by Department')
plt.show()

在这里插入图片描述
使用pandas类型数据画折线图,会把所有折现画出来,不需要一个一个画

df = pd.DataFrame(np.random.randn(10,4).cumsum(0),
 columns=['one','two','three','four'],
 index = np.arange(0,100,10))
df.plot(figsize=(10,6))
plt.show()

在这里插入图片描述
seaborn:Seaborn是一个基于Matplotlib的Python数据可视化库,它提供了各种高级的绘图功能,包括折线图、散点图、直方图等。
tips = pd.read_csv(‘iris.csv’)
使用csv读取的文件一定要在本地文件里

# 读取数据集
tips = pd.read_csv('iris.csv')
# 绘制直方图
sns.histplot(tips['petal_length'],bins=20,kde=True)
plt.show()

在这里插入图片描述
热力图:sns.heatmap()

# ⽣成随机数据集
data = np.random.rand(10, 10)
df = pd.DataFrame(data)
# 绘制直方图
sns.heatmap(df,cmap='YlGnBu')
plt.show()

在这里插入图片描述

小结

属于静态画图部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试小工匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值