Matplotlib数据可视化

目录

1.折线图(LinePlot)

绘图函数

2.散点图(ScatterPlot)

绘图函数

3.条形图(BarPlot):

绘图函数

4.直方图(Histogram)

绘图函数

5.饼图(PieChart)

绘图函数

6.箱线图(BoxPlot)

绘图函数

7.同时绘制多张图

生成画布函数


Matplotlib是Python中非常流行的数据可视化库,它提供了丰富的绘图功能和工具,用于生成各种类型的图像。以下是关于Matplotlib数据可视化中一些常见图像的知识点:

1.折线图(LinePlot)

折线图主要用于展示数据随时间或其他连续变量的变化趋势。

在Matplotlib中,可以使用plot()函数来绘制折线图。

通过设置线条样式、颜色、标记等属性,可以定制折线图的外观。

绘图函数

plt.plot(x,y,color,linestyle,marker,...),x和y分别表示x轴和y轴数据,color表示图形颜色(颜色英文首字母、十六进制颜色代码等),linestyle表示线条样式('-'是实线,'- -'是虚线),marker表示点的样式('*'是星号,'o'是圆点)

简单案例:

首先导入准备好的数据表格(根据各自情况选择)

df_book=pd.read_excel(r'../shuju/明日科技图书销量.xlsx')
df_book

查看浏览量和成交量的关系

plt.scatter(
    df_book['浏览量'],
    df_book['成交商品件数'],
    s=1
)
plt.title('浏览量和成交量散点图')
plt.xlim(0,5000)
plt.ylim(0,400)
plt.show ()

 代码运行结果:

2.散点图(ScatterPlot)

散点图用于展示两个变量之间的关系,每个数据点在图上以单独的标记表示。在Matplotlib中,可以使用scatter()函数绘制散点图。

通过设置点的颜色、大小、形状等属性,可以进一步揭示数据的特性。

绘图函数

plt.scatter(x,y,s,c,marker,...),s表示点标记的大小,c表示点标记颜色

简单案例:

导入数据

(略)

查看图书的浏览量和成交量的关系

plt.scatter(
    df_book['浏览量'],
    df_book['成交商品件数'],
    s=1
)
plt.title('浏览量和成交量散点图')
plt.xlim(0,5000)
plt.ylim(0,400)
plt.show ()

3.条形图(BarPlot):

条形图主要用于比较不同类别的数据大小。

在Matplotlib中,可以使用bar()函数绘制垂直或水平的条形图。条形图可以清晰地展示每个类别的数值大小,便于对比。

绘图函数

plt.bar(x,height,width,...),x表示x轴的刻度,一般为字符;height表示y轴刻度一般为数字;width表示柱子的宽度。

简单案例:

导入数据

(略)

条件查询python类的图书

df_book_python=df_book[df_book['商品名称'].str.contains('Python')]
df_book_python

分组统计各python类图书的总销售

result=df_book_python.groupby('商品名称')['成交商品件数'].sum()
result

查看python类图书销量情况

x=result.index 
y=result.values
plt.rcParams['font.family']='SimHei'
plt.bar(x,y,width=0.5,color='black')

plt.title('Python类图书销量')
plt.xticks(rotation=15)
for a,b in zip(x,y):
    plt.text(
        a,
        b,
        f'{b}',
        ha='center'
        )
plt.show() 

 代码运行结果:

4.直方图(Histogram)

直方图用于展示连续变量的分布情况,通过将数据划分为一系列的区间,并统计每个区间的频数或频率。

在Matplotlib中,可以使用hist()函数绘制直方图。直方图有助于观察数据的集中程度、分散程度和偏态等统计特性。

绘图函数

plt.hist(x,bins),x表示列表、序列数据;bins,表示统计数据分别的区间,接收一个列表。

简单案例:

导入数据

(略)

plt.hist(
    df_air['年龄'],
    bins=[i for i in range(0,100,1)]
)
plt.title('用户年龄分布图(直方图)')
plt.show()

 代码运行结果:

5.饼图(PieChart)

饼图用于展示各部分在整体中所占的比例。

在Matplotlib中,虽然pyplot模块没有直接的饼图函数,但可以使用axes.pie()方法绘制饼图。

饼图通常用于显示有限数量的分类数据,每个扇区代表一个类别,扇区的大小表示该类别在整体中的比例。

绘图函数

plt.pie(x,labels,radius,autopct,...),x表示接收列表的各个数据的值;labels表示接受列表各个数据的标签;radius表示饼图圆的半径,默认为1;autopct表示接受字符串'%%1.xf

%'显示百分比保留一位小数。

简单案例:

导入数据

(略)

交叉分析

gender_zffs=pd.pivot_table(
    data=df_sale,
    index='性别',
    columns='支付方式',
    values='购买数量(件)',
    aggfunc='sum'
)
gender_zffs

 查看男生支付占比情况

plt.pie(
    gender_zffs.loc['男',:],
    labels=gender_zffs.loc['男',:].index,    
    autopct='%1.1f%%',
    explode=[0,0,0.1]
)
plt.show()

 代码运行结果:

6.箱线图(BoxPlot)

箱线图是一种用作显示一组数据分散情况资料的统计图。包含一组数据的最大值、最小值、中位数、及上下四分位数。

在Matplotlib中,可以使用boxplot()函数绘制箱线图。

箱线图在识别数据的异常值、偏态和比较不同组数据的分布等方面非常有用。

绘图函数

plt.boxplot(x,labels,vert,whis,...),vert控制箱型图的方向,接受布尔值;whis表示控制上下限和上下分数之间的距离,默认1.5

简单案例:

plt.boxplot(
    x=df_air['年龄'].dropna(),
    labels=['年龄'],
    vert=False
)
plt.title
plt.show()

 代码运行结果:

7.同时绘制多张图

生成画布函数

plt.figure(figsize=(a,b)),figsize设置画布的大小,a和b分别表示长和宽

plt.figure(figsize=(16,8))
plt.subplot(2,3,4)
#重新定义x和y的值
x=result.index # x轴数据
y=result.values # y轴数据
plt.rcParams['font.family']='SimHei'# 让图形显示中文
plt.bar(x,y,width=0.5,color='black')# 柱形图函数

plt.title('Python类图书销量') #标题
plt.xticks(rotation=15)# x轴刻度倾斜
for a,b in zip(x,y):#绘制数据标签
    plt.text(
        a,# 标签x轴坐标
        b+500,#标签y轴坐标
        f'{b}',#标签文本格式
        ha='center'#标签对齐方式
        )
plt.subplot(2,3,2)
plt.pie(
    gender_zffs.loc['男',:],#数据,自动计算百分比
    labels=gender_zffs.loc['男',:].index,#文本标签
    autopct='%1.1f%%',# 数据标签格式
    explode=[0,0,0.1]#扇形图到原点的距离
)

plt.subplot(2,3,5)
x=df_stock_sort['date']
y1=df_stock_sort['open']
y2=df_stock_sort['ma20']
plt.plot(
    x,
    y1,
    '-',#控制y1折线的样式的字符串
    y2,
    '-.'
)
plt.title('某股票开盘价和20日均线的折线图')
plt.xticks([0,100,200,300,400,500,600],rotation=15)
plt.subplot(2,3,1)
plt.scatter(
    df_book['浏览量'],
    df_book['成交商品件数'],
    s=1
)
plt.title('浏览量和成交量散点图')
plt.xlim(0,5000)
plt.ylim(0,400)
plt.subplot(2,3,3)
plt.hist(
    df_air['年龄'],
    bins=[i for i in range(0,100,1)]
)
plt.title('用户年龄分布图(直方图)')
plt.subplot(2,3,6)
plt.boxplot(
    x=df_air['年龄'].dropna(),#数据不能有空值,如果要画多个箱形图,则数据要以列表的形式
    labels=['年龄'],# 必须输入一个列表
    vert=False
)
plt.show()

代码运行结果:

在使用Matplotlib进行数据可视化时,还可以利用许多其他功能,如设置坐标轴标签、图例、网格线等,以及调整图像大小、比例和保存格式等。这些功能可以进一步提升图像的可读性和美观性。请注意,Matplotlib的功能非常强大且灵活,上述只是其中的一部分知识点。为了充分利用Matplotlib进行数据可视化,建议查阅言方文档或相关教程以获取更详细的信息和示例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值