Matplotlib绘制柱状、散点、直方、箱型; Subplots绘制子图;共享轴线

这篇博客介绍了如何利用Matplotlib库进行数据可视化,包括绘制柱状图、散点图、直方图和箱型图,详细讲解了各种图表的创建方法。此外,还讨论了Subplots功能,展示了如何将画布划分为多个子图,并实现轴共享,以高效地展示多组数据。

Matplotlib介绍

%matplotlib inline #魔法函数,有了它,直接就可以显示结果,不需要plt.show()
import numpy as np
import matplotlib.pyplot as plt
X=np.linspace(0,2*np.pi,100)  #均匀地划分数据
Y=np.sin(X)
Y1=np.cos(X)
plt.plot(X,Y)  #向其中添加元素
plt.plot(X,Y1) #向其中添加元素
plt.show()  #数据可视化
plt.subplot(211)   # 等价于subplot(2,1,1) 2行1列中第1行
plt.plot(X,Y)
plt.subplot(212)   # 等价于subplot(2,1,2)2行1列中第2行
plt.plot(X,np.cos(X),color = "r")

柱状图

data = [5,25,50,20]
plt.bar(range(len(data)),data)  # 竖向柱状图,range()表示遍历data的长度:0,1,2,3
plt.bar(range(len(data)),data)  # 横向的柱状图
data=[[5,25,50,20],[4,23,51,17],[6,22,52,
matplotlib绘制矩阵(Scatter Plot Matrix)可以通过 `pandas.plotting.scatter_matrix` 函数实现。该函数允许在一个绘制多个,每个表示两个变量之间的,从而形成一个矩阵形式的可视化结果。如果需要进一步自定义每个的样式,也可以通过 `matplotlib.pyplot.subplots` 创建布局,并逐个绘制所需的。 ### 基本示例 下面是一个使用 `pandas.plotting.scatter_matrix` 绘制矩阵的示例代码: ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt # 生成随机数据 data = np.random.randn(100, 4) columns = ['A', 'B', 'C', 'D'] df = pd.DataFrame(data, columns=columns) # 绘制矩阵 pd.plotting.scatter_matrix(df, figsize=(10, 8), c='blue', marker='o', hist_kwds={'bins': 20}, s=10, alpha=0.5, edgecolor='black') plt.tight_layout() plt.show() ``` ### 自定义布局 如果需要更灵活地控制每个的内容和样式,可以使用 `matplotlib.pyplot.subplots` 创建一个网格,并逐个绘制: ```python import matplotlib.pyplot as plt import numpy as np import pandas as pd # 生成随机数据 data = np.random.randn(100, 4) columns = ['A', 'B', 'C', 'D'] df = pd.DataFrame(data, columns=columns) # 创建网格 fig, axes = plt.subplots(nrows=len(columns), ncols=len(columns), figsize=(12, 10), sharex=False, sharey=False) # 遍历所有变量组合 for i, col1 in enumerate(columns): for j, col2 in enumerate(columns): ax = axes[i][j] if i == j: ax.hist(df[col1], bins=20, color='lightblue', edgecolor='black') else: ax.scatter(df[col2], df[col1], s=10, c='blue', alpha=0.5, edgecolor='black') # 设置标签 for i, col in enumerate(columns): axes[i][0].set_ylabel(col) axes[-1][i].set_xlabel(col) plt.tight_layout() plt.show() ``` ### 说明 - `pandas.plotting.scatter_matrix` 是一个便捷的法,适合快速生成矩阵。 - `subplots` 提供了更高的灵活性,可以对每个进行详细定制。 - 在自定义布局中,主对角线上的可以是或其他形式,用于显示每个变量的分布情况。 ### 参数说明 - `figsize`:控制整个像的大小。 - `c`:设置的颜色。 - `marker`:设置的形状。 - `alpha`:设置的透明度。 - `edgecolor`:设置的边缘颜色。 - `hist_kwds`:用于控制主对角线上的参数。 ### 应用场景 矩阵适用于多变量数据的探索性分析,能够快速识别变量之间的相关性或模式[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值