Python数据可视化三部曲之 Seaborn 从上手到上头(下)

简介: Python数据可视化三部曲之 Seaborn 从上手到上头

6. 绘制直方图 displot()

绘制直方图使用的是sns.displot()方法

bins=6 表示 分成六个区间绘图

rug=True 表示在x轴上显示观测的小细条

kde=True表示显示核密度曲线

sns.set_style(‘darkgrid’)

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.displot(data=df1[[‘C属性值’]], bins=6, rug=True, kde=True)

plt.title(“直方图”, fontsize=18)

plt.xlabel(‘C属性值’, fontsize=18)

plt.ylabel(‘数量’, fontsize=16)

plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)

plt.show()

image.png

随机生成300个正态分布数据,并绘制直方图,显示核密度曲线

sns.set_style(‘darkgrid’)

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

np.random.seed(13)

Y = np.random.randn(300)

sns.displot(Y, bins=9, rug=True, kde=True)

plt.title(“直方图”, fontsize=18)
plt.xlabel(‘C属性值’, fontsize=18)

plt.ylabel(‘数量’, fontsize=16)

plt.subplots_adjust(left=0.15, right=0.9, bottom=0.1, top=0.9)

plt.show()

2.png

7. 绘制条形图 barplot()

绘制条形图使用的是barplot()方法


以产品类型 字段数据作为x轴数据,A属性值数据作为y轴数据。按照厂商编号字段的不同进行分类。

具体如下:

sns.set_style(‘darkgrid’)

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.barplot(x=“产品类型”, y=‘A属性值’, hue=“厂商编号”, data=df1)

plt.title(“条形图”, fontsize=18)

plt.xlabel(‘产品类型’, fontsize=18)

plt.ylabel(‘数量’, fontsize=16)

plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)

plt.show()

3.png

8. 绘制线性回归模型

绘制线性回归模型使用的是lmplot()方法。

主要的参数为x, y, data。分别表示x轴数据、y轴数据和数据集数据。


除此之外,同上述所讲,还可以通过hue指定分类的变量;

通过col指定列分类变量,以绘制 横向多重子图;

通过row指定行分类变量,以绘制 纵向多重子图;

通过col_wrap控制每行子图的数量;

通过size可以控制子图的高度;

通过markers可以控制点的形状。


下边对 X属性值 和 Y属性值 做线性回归,代码如下:

sns.set_style(‘darkgrid’)

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.lmplot(x=“A属性值”, y=‘B属性值’, data=df1)

plt.title(“线性回归模型”, fontsize=18)

plt.xlabel(‘A属性值’, fontsize=18)

plt.ylabel(‘B属性值’, fontsize=16)

plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)

plt.show()

4.png

9. 绘制 核密度图 kdeplot()

9.1 一般核密度图

绘制和密度图,可以让我们更直观地看出样本数据的分布特征。绘制核密度图使用的方法是kdeplot()方法。


对A属性值和B属性值绘制核密度图,

将shade设置为True可以显示包围的阴影,否则只有线条。

sns.set_style(‘darkgrid’)

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.kdeplot(df1[“A属性值”], shade=True, data=df1, color=‘r’)

sns.kdeplot(df1[“B属性值”], shade=True, data=df1, color=‘g’)

plt.title(“核密度图”, fontsize=18)

plt.xlabel(‘Value’, fontsize=18)

plt.subplots_adjust(left=0.15, right=0.9, bottom=0.15, top=0.9)

plt.show()

5.png

9.2 边际核密度图

绘制边际核密度图时使用的是sns.jointplot()方法。参数kind应为"kde"。使用该方法时,默认使用的是dark样式。且不建议手动添加其他样式,否则可能使图像无法正常显示。

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.jointplot(x=df1[“A属性值”], y=df1[“B属性值”], kind=“kde”, space=0)

plt.show()

6.png

10. 绘制 箱线图 boxplot()

绘制箱线图使用到的是boxplot()方法。

基本的参数有x, y, data。


除此之外 还可以有

hue 表示分类字段

width 可以调节箱体的宽度

notch 表示中间箱体是否显示缺口,默认False不显示。


鉴于前边的数据数据量不太够不便展示,这里再生成一组数据:

np.random.seed(13)

Y = np.random.randint(20, 150, 360)

df2 = pd.DataFrame(

{‘厂商编号’: [‘001’, ‘001’, ‘001’, ‘002’, ‘002’, ‘002’, ‘003’, ‘003’, ‘003’, ‘004’, ‘004’, ‘004’] * 30,

‘产品类型’: [‘AAA’, ‘BBB’, ‘CCC’, ‘AAA’, ‘BBB’, ‘CCC’, ‘AAA’, ‘BBB’, ‘CCC’, ‘AAA’, ‘BBB’, ‘CCC’] * 30,

‘XXX属性值’: Y

}

)


生成好后,开始绘制箱线图:

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.boxplot(x=‘产品类型’, y=‘XXX属性值’, data=df2)

plt.show()

7.png

交换x、y轴数据后:

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.boxplot(y=‘产品类型’, x=‘XXX属性值’, data=df2)

plt.show()


可以看到箱线图的方向也随之改变

8.png

将厂商编号作为分类字段:

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.boxplot(x=‘产品类型’, y=‘XXX属性值’, data=df2, hue=“厂商编号”)

plt.show()

9.png

11. 绘制 提琴图 violinplot()

提琴图结合了箱线图和核密度图的特征,用于展示数据的分布形状。

使用violinplot()方法绘制提琴图。

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.violinplot(x=‘产品类型’, y=‘XXX属性值’, data=df2)

plt.show()

10.png

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.violinplot(x=‘XXX属性值’, y=‘产品类型’, data=df2)

plt.show()

image.png

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]

sns.violinplot(x=‘产品类型’, y=‘XXX属性值’, data=df2, hue=“厂商编号”)

plt.show()

image.png

12. 绘制 热力图 heatmap()

以双色球中奖号码数据为例绘制热力图,这里数据采用随机数生成。

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns


sns.set()

plt.figure(figsize=(6,6))

plt.rcParams[‘font.sans-serif’] = [‘STKAITI’]


s1 = np.random.randint(0, 200, 33)

s2 = np.random.randint(0, 200, 33)

s3 = np.random.randint(0, 200, 33)

s4 = np.random.randint(0, 200, 33)

s5 = np.random.randint(0, 200, 33)

s6 = np.random.randint(0, 200, 33)

s7 = np.random.randint(0, 200, 33)

data = pd.DataFrame(

{‘一’: s1,

‘二’: s2,

‘三’: s3,

‘四’:s4,

‘五’:s5,

‘六’:s6,

‘七’:s7

}

)


plt.title(‘双色球热力图’)

sns.heatmap(data, annot=True, fmt=‘d’, lw=0.5)

plt.xlabel(‘中奖号码位数’)

plt.ylabel(‘双色球数字’)

x = [‘第1位’, ‘第2位’, ‘第3位’, ‘第4位’, ‘第5位’, ‘第6位’, ‘第7位’]

plt.xticks(range(0, 7, 1), x, ha=‘left’)

plt.show()

13.png

目录
相关文章
|
1天前
|
数据可视化 数据挖掘 定位技术
Python和Geopandas进行地理数据可视化
【10月更文挑战第22天】本文介绍了如何使用Python和Geopandas进行地理数据可视化和分析,涵盖从准备工作、加载数据、数据探索与处理、地理数据可视化、空间分析与查询到交互式地理数据可视化等内容。通过丰富的代码示例和案例演示,帮助读者掌握地理数据分析的基本方法,为实际应用提供支持。
30 19
|
12天前
|
数据可视化 数据挖掘 Python
使用Python进行数据可视化:探索与实践
【10月更文挑战第21天】本文旨在通过Python编程,介绍如何利用数据可视化技术来揭示数据背后的信息和趋势。我们将从基础的图表创建开始,逐步深入到高级可视化技巧,包括交互式图表和动态展示。文章将引导读者理解不同图表类型适用的场景,并教授如何使用流行的库如Matplotlib和Seaborn来制作美观且具有洞察力的可视化作品。
39 7
|
11天前
|
数据可视化 定位技术 Python
使用Python进行数据可视化
【10月更文挑战第22天】在这篇文章中,我们将深入探讨如何使用Python进行数据可视化。我们将从基础的图表开始,然后逐步进入更复杂的可视化技术。我们将通过实例代码来展示如何实现这些可视化,以便读者能够更好地理解和应用这些技术。
15 5
|
13天前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
【10月更文挑战第20天】本文旨在为编程新手提供一个简洁明了的入门指南,通过Python语言实现数据可视化。我们会介绍如何安装必要的库、理解数据结构,并利用这些知识来创建基本图表。文章将用通俗易懂的语言和示例代码,帮助读者快速掌握数据可视化的基础技能。
25 4
|
17天前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
30 3
|
26天前
|
数据可视化 开发者 Python
使用Python进行数据可视化:从入门到精通
【10月更文挑战第7天】本文将引导您通过Python的可视化库,如Matplotlib和Seaborn,来探索和展示数据。我们将通过实际代码示例,学习如何创建各种图表,包括条形图、散点图和直方图等,并讨论如何优化这些图表以更好地传达信息。无论您是初学者还是有一定基础的开发者,这篇文章都能帮助您提高数据可视化技能。
|
14天前
|
数据可视化 数据挖掘 定位技术
Python中利用Bokeh创建动态数据可视化
【10月更文挑战第14天】本文介绍了如何使用 Bokeh 库在 Python 中创建动态数据可视化。Bokeh 是一个强大的开源可视化工具,支持交互式图表和大规模数据集的可视化。文章从安装 Bokeh 开始,逐步讲解了如何创建动态折线图,并添加了交互式控件如按钮、滑块和下拉菜单,以实现数据更新频率的调节和颜色选择。通过这些示例,读者可以掌握 Bokeh 的基本用法,进一步探索其丰富功能,创建更具吸引力和实用性的动态数据可视化。
22 0
|
21天前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
21 0
|
数据可视化 数据挖掘 Python
Python实践:seaborn的散点图矩阵(Pairs Plots)可视化数据
如何快速创建强大的可视化探索性数据分析,这对于现在的商业社会来说,变得至关重要。今天我们就来,谈一谈如何使用python来进行数据的可视化!
15818 0
|
8天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###