Python绘图全景式教程:提升你的数据表达力

文章目录

Python绘图教程:从基础到进阶

在数据分析与科学计算的领域,Python因其丰富的库和简单易用的语法,成为了数据可视化的主要工具之一。在本教程中,我们将详细介绍如何使用Python进行数据绘图,并通过实例逐步学习各种常见的图形类型和绘图技巧。

Python绘图库概述

Python支持多种用于数据可视化的库,其中最常用的包括:

  • Matplotlib:一个基础的绘图库,适合进行各种二维绘图,功能强大且高度自定义。
  • Seaborn:基于Matplotlib的高级库,主要用于统计图形,图表美观且简便。
  • Plotly:一个用于绘制交互式图形的库,适用于动态、响应式的网页展示。
  • Bokeh:另一个绘制交互式图形的库,适用于Web开发。

本教程将介绍Matplotlib、Seaborn和Plotly这三大常用库的使用方法,帮助你掌握数据可视化的技能。


Matplotlib基础使用

安装Matplotlib

Matplotlib是Python中最为基础且强大的绘图库。要使用Matplotlib,首先需要安装它:

python 复制代码
pip install matplotlib

绘制基础图形

Matplotlib使用pyplot模块来进行绘图。下面是一个简单的折线图例子:

python 复制代码
import matplotlib.pyplot as plt

# 数据
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]

# 创建图形
plt.plot(x, y)

# 添加标题和标签
plt.title("简单折线图")
plt.xlabel("X轴")
plt.ylabel("Y轴")

# 显示图形
plt.show()

输出:

一个简单的折线图,显示了x与y的关系。

自定义图形样式

Matplotlib支持自定义图形的样式、颜色、线型等,下面是如何改变线型和颜色的例子:

python 复制代码
plt.plot(x, y, color='green', linestyle='--', marker='o')

plt.title("定制样式的折线图")
plt.xlabel("X轴")
plt.ylabel("Y轴")

plt.show()

输出:

这将绘制一个绿色的虚线折线图,并在每个数据点处加上圆形标记。

Seaborn数据可视化

Seaborn安装与介绍

Seaborn是一个基于Matplotlib的高级库,能够帮助用户轻松绘制出美观的统计图形。安装方法如下:

python 复制代码
pip install seaborn

绘制常见统计图

Seaborn专注于统计图形,最常见的图形类型包括散点图、条形图和箱线图。下面是如何绘制散点图的例子:

python 复制代码
import seaborn as sns
import matplotlib.pyplot as plt

# 加载内置数据集
tips = sns.load_dataset("tips")

# 绘制散点图
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="time")

plt.title("小费与账单金额的散点图")
plt.show()

输出:

一个彩色的散点图,显示了账单金额与小费的关系,同时根据用餐时间(午餐/晚餐)着色。

Plotly交互式图形

Plotly安装与基础概念

Plotly是一个用于创建交互式图形的库,适合动态和响应式的数据可视化。安装方法如下:

python 复制代码
pip install plotly

绘制交互式图表

Plotly的绘图非常直观,并且支持交互功能,例如缩放、平移和数据悬浮显示。以下是绘制交互式散点图的示例:

python 复制代码
import plotly.express as px

# 加载数据
tips = px.data.tips()

# 绘制交互式散点图
fig = px.scatter(tips, x="total_bill", y="tip", color="time", title="小费与账单金额的关系")
fig.show()

输出:

你将看到一个交互式的散点图,能够缩放并通过悬浮查看数据点的具体信息。

案例分析:数据可视化应用

用Matplotlib绘制线性回归图

假设我们有一组简单的线性回归数据,以下是如何使用Matplotlib绘制回归线的示例:

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# 生成数据
x = np.random.rand(100, 1)
y = 2 * x + 1 + np.random.randn(100, 1)

# 创建回归模型
model = LinearRegression()
model.fit(x, y)

# 绘制散点图
plt.scatter(x, y, color='blue', label='数据点')

# 绘制回归线
plt.plot(x, model.predict(x), color='red', label='回归线')

plt.title("线性回归图")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend()

plt.show()

输出:

一个包含数据点和回归线的图形,回归线能够很好地拟合数据。

用Seaborn绘制分类数据分布图

Seaborn特别擅长绘制分类数据的分布情况。以下是绘制分类数据分布图的代码:

python 复制代码
import seaborn as sns
import matplotlib.pyplot as plt

# 加载数据
tips = sns.load_dataset("tips")

# 绘制箱线图
sns.boxplot(x="day", y="total_bill", data=tips)

plt.title("不同日子的账单金额分布")
plt.show()

输出:

一个箱线图,展示了不同星期几账单金额的分布情况。

使用Plotly展示金融数据

Plotly非常适合展示金融数据,以下是一个简单的股票价格走势图:

python 复制代码
import plotly.graph_objects as go

# 示例股票数据
dates = ["2024-01-01", "2024-01-02", "2024-01-03", "2024-01-04", "2024-01-05"]
prices = [100, 102, 101, 105, 110]

# 创建股票价格图表
fig = go.Figure(data=[go.Candlestick(x=dates,
                                    open=[100, 102, 101, 105, 110],
                                    high=[102, 103, 104, 106, 112],
                                    low=[99, 100, 101, 102, 109],
                                    close=prices)])

fig.update_layout(title="2024年1月股票价格走势", xaxis_title="日期", yaxis_title="价格")
fig.show()

输出:

一个交互式的股票K线图,用户可以缩放并查看具体日期的价格波动。

Matplotlib、Seaborn 和 Plotly 常用函数的大全

Python绘图库函数大全

在数据可视化过程中,MatplotlibSeabornPlotly 是常用的库。以下是这三个库的一些常用函数及其功能介绍。


1. Matplotlib常用函数

函数名 用途 示例代码
plt.plot() 绘制折线图 plt.plot(x, y)
plt.scatter() 绘制散点图 plt.scatter(x, y)
plt.bar() 绘制条形图 plt.bar(x, height)
plt.hist() 绘制直方图 plt.hist(data, bins=10)
plt.boxplot() 绘制箱线图 plt.boxplot(data)
plt.subplot() 创建子图 plt.subplot(2, 2, 1) # 2行2列中的第1个图
plt.title() 设置图表标题 plt.title('My Plot Title')
plt.xlabel() 设置X轴标签 plt.xlabel('X Axis Label')
plt.ylabel() 设置Y轴标签 plt.ylabel('Y Axis Label')
plt.legend() 显示图例 plt.legend(['Line 1', 'Line 2'])
plt.show() 显示图形 plt.show()
plt.savefig() 保存图形为文件 plt.savefig('plot.png')
ax.plot() 在特定轴对象上绘制折线图 ax.plot(x, y)
ax.set_title() 设置子图的标题 ax.set_title('Subplot Title')
ax.set_xlabel() 设置子图的X轴标签 ax.set_xlabel('X Axis')
ax.set_ylabel() 设置子图的Y轴标签 ax.set_ylabel('Y Axis')

2. Seaborn常用函数

函数名 用途 示例代码
sns.scatterplot() 绘制散点图 sns.scatterplot(data=df, x="column1", y="column2", hue="category")
sns.lineplot() 绘制线性图 sns.lineplot(data=df, x="time", y="value", hue="category")
sns.barplot() 绘制条形图 sns.barplot(x="category", y="value", data=df)
sns.boxplot() 绘制箱线图 sns.boxplot(x="category", y="value", data=df)
sns.heatmap() 绘制热力图 sns.heatmap(data, annot=True, cmap="coolwarm")
sns.pairplot() 绘制数据的所有变量组合的散点图 sns.pairplot(df, hue="category")
sns.histplot() 绘制直方图或密度图 sns.histplot(data=df, x="value", kde=True)
sns.violinplot() 绘制小提琴图 sns.violinplot(x="category", y="value", data=df)
sns.catplot() 创建分类图形(支持条形图、箱线图等) sns.catplot(x="category", y="value", data=df, kind="box")
sns.set_style() 设置绘图的风格 sns.set_style("whitegrid")
sns.set_palette() 设置颜色调色板 sns.set_palette("muted")
sns.despine() 去除图形的边框 sns.despine()

3. Plotly常用函数

函数名 用途 示例代码
plotly.express.scatter() 绘制散点图 fig = px.scatter(df, x="column1", y="column2", color="category")
plotly.express.line() 绘制线图 fig = px.line(df, x="time", y="value", color="category")
plotly.express.bar() 绘制条形图 fig = px.bar(df, x="category", y="value")
plotly.express.box() 绘制箱线图 fig = px.box(df, x="category", y="value")
plotly.express.histogram() 绘制直方图 fig = px.histogram(df, x="value", nbins=20)
plotly.graph_objects.Candlestick() 绘制K线图(股票数据) fig = go.Figure(data=[go.Candlestick(x=dates, open=open_prices, high=high_prices, low=low_prices, close=close_prices)])
fig.update_layout() 更新图表布局(标题、轴标签等) fig.update_layout(title="My Chart Title", xaxis_title="X Axis", yaxis_title="Y Axis")
fig.update_traces() 更新图形的特性(如颜色、大小等) fig.update_traces(marker=dict(color='red', size=10))
fig.update_xaxes() / fig.update_yaxes() 更新X轴或Y轴的属性 fig.update_xaxes(showgrid=False)

总结

在本文中,我们介绍了Python常用的绘图库:Matplotlib、Seaborn和Plotly。每个库都有其独特的功能和优点:

Matplotlib:强大而灵活,适合基础图形的绘制。

Seaborn:简洁易用,适合绘制统计图形。

Plotly:适合绘制交互式图形,适用于动态数据展示。

通过本文的实例,你应该能够在实际项目中选择合适的库,并高效地进行数据可视化工作。希望你能在数据分析和科学研究的过程中,充分利用这些强大的工具。

感兴趣的小伙伴可以去看看我的另外两个专栏

Python数据分析五十个小案例:https://blog.csdn.net/null18/category_12840404.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12840404&sharerefer=PC&sharesource=null18&sharefrom=from_link


Python爬虫五十个小案例:https://blog.csdn.net/null18/category_12840403.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12840403&sharerefer=PC&sharesource=null18&sharefrom=from_link

相关推荐
好开心331 分钟前
2.17、vue的生命周期
java·开发语言·前端·javascript·vue.js·前端框架·ecmascript
PieroPc3 分钟前
Python 写个 《系统信息采集工具》为重装系统做准备。。。
开发语言·python
破局缘12 分钟前
apt文件问题ruby.list文件
开发语言·windows·ruby
晚安~~21 分钟前
社区生活超市系统|Java|SSM|JSP|
java·开发语言·tomcat·maven
莫叫石榴姐22 分钟前
SQL进阶技巧:如何根据工业制程参数计算良品率?
数据库·python·sql·机器学习·数据分析·线性回归
Faylynn22 分钟前
Python:程序中如何引用环境变量
开发语言·python
小堃学编程24 分钟前
Python学习(二)—— 基础语法(上)
开发语言·python
会思想的苇草i25 分钟前
JavaScript--原型与原型链
开发语言·前端·javascript·设计模式·原型·原型模式·原型链
向宇it27 分钟前
【从零开始入门unity游戏开发之——C#篇06】变量类型转化和异常捕获
开发语言·游戏·unity·c#·游戏引擎
wks1989121527 分钟前
线程sleep的时候会释放锁吗
开发语言·c++·算法