目录
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进行数据可视化,建议查阅言方文档或相关教程以获取更详细的信息和示例。