Python数据可视化:从入门到实践

在当今的数据驱动世界中,数据可视化是理解和解释数据的关键工具。Python作为一种强大的编程语言,提供了多种库来支持数据可视化,其中最受欢迎的是Matplotlib、Seaborn和Plotly。在本文中,我们将介绍如何使用这些库来创建基本和高级的可视化图表,并附上相应的代码示例。

1. 导入所需的库

在开始之前,请确保你已经安装了这些库。如果没有,可以使用pip来安装:

pip install matplotlib seaborn plotly

在Python脚本中,你需要导入这些库:

import matplotlib.pyplot as plt  
import seaborn as sns  
import plotly.express as px  
import pandas as pd  # 用于数据处理
import numpy as np 

2. 使用Matplotlib绘制基本图表

Matplotlib是Python中最早也是最基本的数据可视化库之一。它提供了丰富的绘图接口,可以绘制折线图、散点图、柱状图、饼图等多种图表类型。

2.1 柱形图(Bar Chart)

使用Matplotlib绘制柱形图:

# 准备数据  
categories = ['Category A', 'Category B', 'Category C', 'Category D', 'Category E']  
values = [10, 20, 30, 40, 50]  
  
# 创建柱状图  
plt.bar(categories, values)  
  
# 设置标题和轴标签  
plt.title('Bar Chart Example')  
plt.xlabel('Categories')  
plt.ylabel('Values')  
  
# 显示图表  
plt.show()
2.2 折线图(Line Chart)

使用Matplotlib绘制折线图:

# 创建数据  
x = np.linspace(0, 10, 100)  
y = np.sin(x)  
  
# 绘制折线图  
plt.plot(x, y)  
  
# 设置图表标题和坐标轴标签  
plt.title('简单的折线图')  
plt.xlabel('x')  
plt.ylabel('y')  
  
# 显示图表  
plt.show()
2.3  饼图 (Pie Chart)

使用Matplotlib绘制饼图:

# 数据  
labels = ['A', 'B', 'C', 'D', 'E']  
sizes = [15, 30, 45, 10, 5]  
  
# 绘制饼图  
fig1, ax1 = plt.subplots()  
ax1.pie(sizes, labels=labels, autopct='%1.1f%%',  
        shadow=True, startangle=90)  
  
# 设置等轴比例,使得饼图看起来是圆的  
ax1.axis('equal')    
  
plt.show()
2.4 散点图(Scatter Plot)

使用Matplotlib绘制散点图:

# 数据  
x = np.random.rand(50)  
y = np.random.rand(50)  
  
# 绘制散点图  
plt.scatter(x, y)  
  
# 添加标题和轴标签  
plt.title('Scatter Plot Example')  
plt.xlabel('X-axis')  
plt.ylabel('Y-axis')  
  
# 显示图表  
plt.show()
2.5 直方图 (Histogram)

使用Matplotlib绘制直方图:

# 随机生成一些数据  
data = np.random.randn(1000)  
  
# 绘制直方图  
plt.hist(data, bins=30, edgecolor='black')  
plt.title('Histogram of Data')  
plt.xlabel('Value')  
plt.ylabel('Frequency')  
  
plt.show()

2.6 箱型图 (Box Plot)

使用Matplotlib绘制箱型图:

# 生成一些数据  
np.random.seed(10)  
data = [np.random.normal(0, std, 100) for std in range(1, 4)]  
  
# 绘制箱型图  
plt.boxplot(data, vert=True, patch_artist=True, labels=['G1', 'G2', 'G3'])  
plt.title('Box plot')  
plt.show()

3. Seaborn:统计绘图库

Seaborn是基于Matplotlib的高级数据可视化库,它提供了更高级别的接口,用于绘制统计图形,如直方图、箱线图、热力图等。Seaborn还内置了多种数据集和样式,使得绘图更加方便快捷。下面是一个使用Seaborn绘制箱线图的示例:

# 加载内置数据集  
tips = sns.load_dataset('tips')  
  
# 绘制箱线图  
sns.boxplot(x='day', y='total_bill', data=tips)  
  
# 设置图表标题  
plt.title('不同日期的账单总额箱线图')  
  
# 显示图表  
plt.show()
3.1 柱形图(Bar Chart)

使用Seaborn绘制柱形图(这里使用countplot作为分类数据的示例):

# 示例数据(使用pandas DataFrame)  
data = {'Category': ['A', 'B', 'A', 'C', 'B', 'A', 'B', 'C', 'C', 'A'],  
        'Value': [1, 2, 3, 2, 3, 5, 4, 5, 4, 5]}  
df = pd.DataFrame(data)  
  
# 绘制柱形图(分类计数)  
sns.countplot(x='Category', data=df)  
  
# 添加标题  
plt.title('Bar Chart with Seaborn')  
  
# 显示图表  
plt.show()
3.2 折线图(Line Chart)

虽然Seaborn不直接提供折线图函数,但可以使用lineplot函数绘制时间序列数据或分组数据的折线图。

# 示例数据(时间序列)  
index = pd.date_range(start="20230101", periods=10)  
data = {'Value': np.random.randn(10).cumsum()}  
df = pd.DataFrame(data, index=index)  
  
# 绘制折线图  
sns.lineplot(data=df['Value'])  
  
# 添加标题  
plt.title('Line Chart with Seaborn')  
  
# 显示图表  
plt.show()
3.3 散点图(Scatter Plot)

散点图,显示2个数值变量之间的关系。

使用Seaborn绘制散点图:

# 示例数据  
data = {'X': np.random.rand(50), 'Y': np.random.rand(50)}  
df = pd.DataFrame(data)  
  
# 绘制散点图  
sns.scatterplot(x='X', y='Y', data=df)  
  
# 添加标题  
plt.title('Scatter Plot with Seaborn')  
  
# 显示图表  
plt.show()
3.4 直方图 (Histogram)

直方图,可视化一组或多组数据的分布情况。

使用Seaborn绘制直方图:

# 加载数据
df = sns.load_dataset('iris', data_home='seaborn-data', cache=True)

# 绘图显示
sns.distplot(a=df["sepal_length"], hist=True, kde=False, rug=False)
plt.show()
3.5 箱型图 (Box Plot)

箱形图,可视化一组或多组数据的分布情况。

使用Seaborn绘制箱型图:

# 生成一些数据  
np.random.seed(10)  
data = pd.DataFrame({  
    'G1': np.random.normal(0, 1, 100),  
    'G2': np.random.normal(0, 2, 100),  
    'G3': np.random.normal(0, 3, 100),  
}, columns=['G1', 'G2', 'G3'])  
  
# 绘制箱型图  
sns.boxplot(data=data)  
plt.show()

4. Plotly:交互式图表库

Plotly是一个强大的交互式图表库,可以创建交互式和动画效果的图表。Plotly支持多种图表类型,如散点图、折线图、柱状图、地图等,并且可以在Web浏览器中直接展示。下面是一个使用Plotly创建交互式散点图的示例:

# 创建数据  
df = px.data.iris()  
  
# 绘制交互式散点图  
fig = px.scatter(df, x='sepal_width', y='sepal_length', color='species')  
  
# 显示图表(在Jupyter Notebook或Colab中)  
fig.show()  
  
# 或者,如果需要在Web上直接查看,可以保存为HTML文件  
fig.write_html('iris_scatter.html')

5. 其他可视化库

除了上述三个库之外,Python还有许多其他优秀的数据可视化库,如Bokeh、GeoPandas(用于地理数据可视化)、HoloViews等。每个库都有其独特的特点和优势,可以根据具体需求选择使用。

实例操作

一.引入数据库

二.读取数据

查询数据

 

三.设置字体

四.绘制散点图

得到效果图片

 

总结

Python数据可视化是一个广阔的领域,有许多优秀的库和工具可供选择。在本文中,我们介绍了Matplotlib、Seaborn和Plotly三个常用的库,并通过代码和图表示例展示了它们的功能和用法。这些库提供了丰富的绘图接口和样式选项,可以帮助我们快速创建美观、直观的数据可视化图表。无论是数据分析、机器学习还是科学计算等领域,数据可视化都是一个不可或缺的工具,它可以帮助我们更好地理解数据、发现规律并做出决策。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值