Python 中 三种常用的绘图方式 ! ! !

一  Matplotlib可视化

在Python中,Matplotlib是一个功能强大的绘图库,特别是其Pyplot模块,提供了类似于MATLAB的绘图接口,使得用户可以轻松绘制各种2D图表。下面我们将详细介绍使用Matplotlib进行可视化的基本步骤以及常用图形的绘制方法。

步骤

  1. 创建画板和坐标轴对象
    • 使用Matplotlib时,首先需要创建一个图形(画板)和坐标轴对象。但在简单的绘图中,这一步通常是隐式完成的。
  2. 绘制指定的图形
    • 使用Pyplot提供的各种函数绘制图形,如线图、散点图、条形图、直方图、饼图等。
  3. 设置坐标轴值、网格、标题等
    • 可以通过Pyplot提供的函数设置坐标轴的标签、范围、网格线、图表的标题和注释等。
  4. 画图
    • 使用plt.show()函数显示图表。

涉及到的图形

  • hist():用于绘制直方图,展示数据的分布情况。
  • scatter():用于绘制散点图,显示两个变量之间的关系。
  • plot():最常用的函数之一,用于绘制线图和散点图。
  • bar():用于绘制垂直条形图和水平条形图,展示不同类别的数据对比。
  • pie():用于绘制饼图,显示各部分在总体中所占的比例。
  • imshow():用于绘制图像,特别是热力图或图像数据。
  • subplots():用于创建子图,即在一个图形窗口中绘制多个图表。

示例

状态接口方式

下面是一个使用状态接口方式绘制简单线图的示例:

import matplotlib.pyplot as plt 


# 1. 准备x轴 和 y轴的数据. 
x = [-3, 5, 7] # x轴坐标 
y = [1, 4, 9] # y轴坐标 


# 2. 绘制线图 
plt.plot(x, y) 


# 3. 设置坐标轴标签和标题 
plt.xlabel('X axis') 
plt.ylabel('Y axis') 
plt.title('Simple Line Plot') 


# 4. 画图 
plt.show()
参数了解

plot() 函数是Matplotlib中最基础也是最常用的函数之一,其参数非常灵活,支持多种格式和选项。

  • x, y:点的坐标或线的节点,可以是列表或数组。
  • fmt:可选,定义基本格式,如颜色、标记和线条样式。
  • **kwargs:可选,用于设置其他属性,如标签、线宽等。

颜色字符如 'b' 表示蓝色,'r' 表示红色等;线型参数如 '-' 表示实线,'--' 表示破折线等;标记字符如 'o' 表示实心圈,'.' 表示点等。

二  Pandas自带绘图功能

Pandas是一个强大的Python数据分析库,它内置了基于Matplotlib的绘图功能,使得数据分析师和科学家能够方便地对数据进行可视化。Pandas的绘图功能通过DataFrame或Series对象的.plot方法实现,提供了多种图表类型来满足不同的数据可视化需求。

格式

Pandas的绘图功能非常直观,其基本格式如下:

df对象.plot.图形名(参数) 
# 或者 
Series对象.plot.图形名(参数)

这里的df对象是指Pandas的DataFrame对象,而Series对象则是指Pandas的Series对象。图形名指的是你想要绘制的图表类型,如barlinearea等。参数则是用于自定义图表的各种选项,如大小、字体、颜色等。

常用参数

  • figsize:用于设置图表的大小,格式为(宽, 高),单位为英寸。
  • fontsize:用于设置图表中字体的大小。
  • color:用于设置图表中元素的颜色,可以是颜色的缩写(如'r'代表红色),也可以是颜色的十六进制表示(如'#FF0000'也代表红色)。

常用图形

  • bar():绘制条形图,展示不同类别的数据对比。
  • line():绘制线图,展示数据随时间或其他连续变量的变化趋势。
  • area():绘制面积图,与线图类似,但下方区域会被填充颜色,常用于显示累计数据。
  • pie():绘制饼图,展示各部分在总体中所占的比例。
  • hist():绘制直方图,展示数据的分布情况。
  • scatter():绘制散点图,显示两个变量之间的关系。

示例

假设我们有一个Pandas DataFrame df,它包含了某产品的月销量数据:

import pandas as pd 
import numpy as np 


# 创建一个示例DataFrame 
np.random.seed(0) 
data = {'Month': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], 
'Sales': np.random.randint(100, 300, 6)} 
df = pd.DataFrame(data) 


# 绘制条形图 
df.plot.bar(x='Month', y='Sales', figsize=(10, 6), fontsize=14, color='skyblue') 


# 显示图表 
plt.show()

在这个示例中,我们首先导入了pandas和numpy库,并创建了一个包含月份和销量的DataFrame。然后,我们使用.plot.bar()方法绘制了一个条形图,其中x='Month'指定了x轴为月份,y='Sales'指定了y轴为销量,figsize=(10, 6)设置了图表的大小,fontsize=14设置了字体大小,color='skyblue'设置了条形的颜色。最后,我们使用plt.show()显示了图表。

注意:在Pandas的绘图示例中,我们通常还需要导入Matplotlib的pyplot模块(import matplotlib.pyplot as plt),因为Pandas的绘图功能是基于Matplotlib实现的,尽管在Pandas的绘图方法中不需要显式调用plt.show()来显示图表(Pandas的.plot()方法内部已经调用了它),但在某些情况下(如需要自定义图表显示顺序时),我们仍然需要显式地调用plt.show()。然而,为了保持示例的简洁性,上述示例中并没有显式导入pyplot模块。在实际应用中,请确保已经正确导入了所需的模块。

三 Seaborn绘图

Seaborn(简称sns)是一个基于matplotlib的高级绘图库,它提供了一个更高级的接口来绘制各种吸引人的统计图形。Seaborn旨在使绘图变得更加简单,同时产生更美观和更复杂的图表。以下是关于如何使用Seaborn进行可视化的一些详细指导,包括常用的图形类型、设置图形样式和风格的步骤。

图形名

  • histplot():绘制直方图,展示数据的分布情况。
  • kdeplot():绘制核密度估计图,用于展示数据的连续分布。
  • countplot():绘制计数图(条形图),展示不同类别的计数。
  • scatterplot():绘制散点图,展示两个变量之间的关系。
  • regplot():绘制回归图,展示两个变量之间的线性关系。参数fit_reg=True表示绘制回归线。
  • jointplot():绘制联合分布图,展示两个变量的分布及其关系。参数kind='hex'表示使用六边形分箱(hexbin)来显示密度。
  • boxplot():绘制箱线图,展示数据的分布情况,包括中位数、四分位数等统计量。
  • violinplot():绘制小提琴图,与箱线图类似,但更侧重于显示数据的分布密度。参数hue用于分组数据,split=True表示在分组的情况下将小提琴图分开显示。

绘图基本格式

import seaborn as sns 
import matplotlib.pyplot as plt 


# 假设df是已经存在的DataFrame 
fig, ax = plt.subplots(figsize=(宽, 高)) # 创建图形和坐标轴对象 
sns.图形名(data=df对象, x='x轴数据', y='Y轴数据', ...) # 绘制图形 
ax.set_title('标题') # 设置标题 
plt.show() # 显示图形

风格和样式

Seaborn提供了几种不同的绘图风格和样式,可以通过sns.set_style('风格名')来设置。

  • white:纯白色背景,无网格线。
  • whitegrid:白色背景,带有网格线。
  • dark:暗色背景,无网格线。
  • darkgrid:暗色背景,带有网格线。
  • ticks:与whitegrid类似,但网格线更细。

示例

import seaborn as sns 
import matplotlib.pyplot as plt 


# 设置绘图风格 
sns.set_style('darkgrid') 


# 假设tips是一个已经存在的DataFrame 
fig, ax = plt.subplots(figsize=(10, 6)) 
sns.scatterplot(data=tips, x='total_bill', y='tip', hue='day') 
ax.set_title('Tips by Day and Total Bill') 
plt.show()

在这个示例中,我们首先设置了绘图风格为darkgrid,然后创建了一个图形和坐标轴对象。接着,我们使用sns.scatterplot()绘制了一个散点图,其中data=tips指定了数据源,x='total_bill'y='tip'分别指定了x轴和y轴的数据列,hue='day'表示根据day列的不同值对散点进行分组和着色。最后,我们设置了图表的标题并显示了图表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值