Ubuntu环境下Python数据可视化的实现流程
在Ubuntu系统中,首先需要安装Python环境和必要的可视化库。由于Ubuntu默认仓库的Python版本可能较旧,建议通过以下命令更新并安装Python3及pip(Python包管理工具):
sudo apt update
sudo apt install python3 python3-pip
为避免不同项目间的依赖冲突,推荐使用虚拟环境(venv)隔离项目环境:
python3 -m venv myenv # 创建名为myenv的虚拟环境
source myenv/bin/activate # 激活虚拟环境(激活后终端提示符会显示环境名)
进入虚拟环境后,再安装可视化所需的库:
pip3 install matplotlib seaborn pandas plotly bokeh altair
这些库覆盖了从基础到高级、静态到交互式的各类可视化需求。
Matplotlib是Python最基础的可视化库,支持绘制折线图、柱状图、散点图等经典图表,适合数据探索的初步展示。
import matplotlib.pyplot as plt
import numpy as np
# 生成示例数据
x = np.linspace(0, 10, 100) # 0-10之间的100个等间距点
y = np.sin(x) # 正弦函数值
# 绘制折线图
plt.plot(x, y, color='blue', linestyle='--', label='sin(x)')
plt.title('Basic Line Plot') # 图表标题
plt.xlabel('X-axis') # X轴标签
plt.ylabel('Y-axis') # Y轴标签
plt.legend() # 显示图例
plt.grid(True) # 显示网格线
plt.show() # 显示图表
适用场景:快速绘制基础图表,适合对图表样式要求不高的场景。
Seaborn基于Matplotlib构建,提供了更美观的默认主题和高级统计图表(如箱线图、热力图、分类图),能与Pandas数据框无缝对接。
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
# 加载示例数据集(鸢尾花数据集)
iris = load_iris()
df = sns.load_dataset('iris') # Seaborn内置的鸢尾花数据集
# 绘制箱线图(展示不同类别的花瓣长度分布)
plt.figure(figsize=(10, 6)) # 设置图表大小
sns.boxplot(x='species', y='petal_length', data=df, palette='Set2') # 按species分组,花瓣长度为y轴
plt.title('Boxplot of Petal Length by Species')
plt.show()
适用场景:统计分析、数据分布展示,适合需要快速生成专业统计图表的场景。
Plotly支持生成交互式图表(如缩放、平移、悬停查看数据),适合网页嵌入或动态展示,尤其擅长3D图表和复杂交互。
import plotly.express as px
from sklearn.datasets import load_iris
# 加载鸢尾花数据集
df = px.data.iris()
# 绘制交互式散点图(按species分组,颜色区分)
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species',
title='Interactive Scatter Plot of Iris Dataset',
labels={'sepal_width': 'Sepal Width', 'sepal_length': 'Sepal Length'})
fig.show() # 在浏览器中显示交互式图表
适用场景:需要交互功能的网页可视化、动态数据展示(如实时仪表盘)。
Pandas的DataFrame对象内置了plot方法,可直接基于数据框生成图表,适合快速查看数据趋势,无需额外导入库。
import pandas as pd
import numpy as np
# 创建示例数据框
data = {'A': np.random.randn(100), 'B': np.random.randn(100)}
df = pd.DataFrame(data)
# 绘制折线图(展示A列随时间的变化)
df.plot(x=df.index, y='A', kind='line', title='Random Data Line Plot', figsize=(10, 5))
plt.show()
适用场景:快速查看数据趋势,适合数据预处理阶段的初步探索。
Jupyter Notebook是数据可视化的理想工具,支持代码、图表、文本混合展示,适合交互式分析和报告撰写。
pip3 install notebook # 安装Jupyter Notebook
jupyter notebook # 启动Notebook服务器(默认在http://localhost:8888打开)
在Notebook中,只需将代码块与Markdown文本结合,即可生成图文并茂的分析报告。例如:
# 在Notebook中绘制Seaborn热力图
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
df = sns.load_dataset('iris')
corr = df.iloc[:, :4].corr() # 计算数值列的相关系数矩阵
plt.figure(figsize=(8, 6))
sns.heatmap(corr, annot=True, cmap='coolwarm', fmt='.2f') # 显示相关系数,annot=True表示显示数值
plt.title('Correlation Heatmap of Iris Dataset')
plt.show()
优势:便于迭代分析、分享结果,适合团队协作。
plt.style.use('ggplot')修改(如使用ggplot风格),提升图表美观度;fig.write_html('plot.html')导出HTML文件);