python seaborn 可视化【箱型图 直方图 折线图 散点图 KDE曲线 柱状图】

【参考b站视频:一小时带你掌握seaborn可视化教程
跟着视频学习了一下,并记录下来分享给大家~
我是在 pycharm 环境中运行的,用 jupyter notebook会更方便一点哦~】



需要导入的库函数:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

使用 seaborn 画图时需要调用哪些语句,可以参考下边的这幅图:
(具体怎么用,通过后边的代码就能看出来,不急~~)
在这里插入图片描述


数据说明

实验中我们使用seaborn自带的数据集,seaborn主要分析处理的就是dataframe数据类型

print(sns.get_dataset_names()) #查看seaborn有哪些自带的数据集
# 加载第一个测试数据集
penguin_df=sns.load_dataset("penguins") #加载数据报错时,参考 https://zhuanlan.zhihu.com/p/452775423
# print(penguin_df)

# 加载第二个测试数据集
tip_df=sns.load_dataset("tips")
# print(tip_df)

1. 箱型图

箱型图可以用来查看数据的取值范围,检查一下是否存在异常

## 数据集中其实是存在缺失值的,但是下边的画图并没有报错,可见seaborn会自动识别空值
sns.boxplot(data=penguin_df,x="bill_length_mm") # 传入的df数据;在x轴上绘制bill_length_mm列数据的分布情况
#sns.boxplot(data=penguin_df,y="bill_length_mm")  #在y轴上绘制
#sns.boxplot(data=penguin_df) #不指定画哪列的话,就是每列数据的箱型都在一张图上了
plt.show()  #想在pycharm中让seaborn弹出图,需要加上这句话(后续不再强调,大家别忘了加就行)

在这里插入图片描述


###### 画多箱图 ######
#根据sex属性,对total_bill这列数据进行拆分
#属于Male的total_bill拿出来画一个分布,属于Female的total_bill拿出来画一个分布
sns.boxplot(data=tip_df,y="total_bill",x='sex') 

在这里插入图片描述


# 根据最开始给出的那个框架图,boxplot属于catplot大类,所以我们也可以用catplot来画图
sns.catplot(data=penguin_df,x="bill_length_mm",kind="box") #这里要用kind参数来指定画箱型图

在这里插入图片描述

更多箱型图操作可参考绘制箱型图


2. 分布散点图

相当于把箱型图的箱子里的数据给展示出来

sns.stripplot(data=df_select,x='vpair',y='weight')

在这里插入图片描述

sns.stripplot(data=df_select,x='vpair',y='weight',jitter=False) # jitter参数可以设置去掉震动效果

在这里插入图片描述


3. 小提琴图

sns.violinplot(data=tip_df,x='day',y="total_bill")

在这里插入图片描述


4. 直方图

统计某个数值出现的频数/频率

sns.displot(data=penguin_df,x='bill_length_mm') # displot默认是绘制直方图

在这里插入图片描述


sns.histplot(data=penguin_df,x='bill_length_mm') #用histplot这个专门画直方图的试一下

在这里插入图片描述


sns.displot(data=penguin_df,x='bill_length_mm',bins=50) #调整每个统计区间的大小

在这里插入图片描述


sns.displot(data=penguin_df,x="species") #类别变量这列也可以画直方图

在这里插入图片描述


###### hue是一个很重要的参数,它可以自动对类别进行解析,加上它画出来的图也很高级
sns.displot(data=penguin_df,x="species",hue="species",shrink=0.7) #shrink来缩小间距

在这里插入图片描述


sns.countplot(data=penguin_df,x='species') #根据那个框架图,可以看到countplot是专门针对类别统计的

在这里插入图片描述


5. 柱状图

跟直方图不一样,纵轴代表的是数值大小而不是频数,可参考matplotlib中的bar

x = ['A','B','C','D','E','F']
y = [8,3,2,4,9,5]

sns.barplot(x,y,color='steelblue')
plt.xlabel('方法',fontsize=12)
plt.ylabel('准确率',fontsize=12)
plt.show()

在这里插入图片描述
【至于怎么画多组方案并列对比的柱状图,用matlab更方便简洁一点】


6. 核密度估计KDE曲线

sns.displot(data=penguin_df,x='bill_length_mm',kde=True) #默认画的直方图,并叠加上kde曲线

在这里插入图片描述


sns.displot(data=penguin_df,x='bill_length_mm',kind="kde",hue="species") #kind指定我就是要画kde曲线,用强大的来hue解析类别

在这里插入图片描述


sns.displot(data=penguin_df,x='bill_length_mm',kind="kde",hue="species",rug=True) #rug参数可以在下方加上观测数据的小细条

在这里插入图片描述


sns.displot(data=penguin_df,x='bill_length_mm',kind="kde",hue="species",cut=0)#kde曲线是拟合的,所以存在超出范围的值,用cut参数即可去除不展示

在这里插入图片描述


sns.displot(data=penguin_df,x='bill_length_mm',kind="kde",hue="species",cut=0,linewidth=5,color='r') #还可以设置线宽、颜色

在这里插入图片描述


7. 绘制多个子图

利用FaceGrid特性来形成多个子图(根据某两列属性的组合构成多图)

sns.displot(data=penguin_df,x='bill_length_mm',row='sex',col='island',kind='kde')

在这里插入图片描述


sns.displot(data=penguin_df,x='bill_length_mm',row='sex',col='island',hue='species',kind='kde')  # hue它又来喽~~

在这里插入图片描述

8. 散点图

sns.relplot(data=tip_df,x='total_bill',y='tip') #绘制散点图

在这里插入图片描述


sns.relplot(data=tip_df,x='total_bill',y='tip',hue='time',style='time',markers=['o','^']) #后边可以加一些参数,区分不同的类别

在这里插入图片描述


sns.relplot(data=tip_df,x='total_bill',y='tip',hue='size',size='size') #还可以设置点的大小变化

在这里插入图片描述


sns.relplot(data=tip_df,x='total_bill',y='tip',col='day',col_wrap=2) #按“day”列划分多子图,放在一行太挤太丑了,用col_wrap设置一行两个

在这里插入图片描述


9. 折线图

折线图展示出变量的变化过程。和kde曲线是不一样的,kde和直方图是看变量的分布,没有时序的概念

### 以下两种方式均可 ###

profitList=[3,2,4,1,-2,7,8,8,8]
sns.lineplot(data=profitList)  # 传入一个列表

df=pd.read_csv(r'E:\2022年\example.csv')
sns.lineplot(data=df['w']) # 传入dataframe的某一列

在这里插入图片描述


10. 线性关系分析

基于上边画的散点,找到一个线性回归函数进行拟合

sns.lmplot(data=tip_df,x='total_bill',y='tip')

在这里插入图片描述

sns.regplot(data=tip_df,x='total_bill',y='tip') #专门画回归的函数

在这里插入图片描述

sns.lmplot(data=tip_df,x='total_bill',y='tip',row='smoker',col='time',hue="time") #画子集的多图

在这里插入图片描述


持续更新中……

  • 3
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Jupyter Notebook中绘制柱状图,您可以使用Python的Matplotlib库。以下是一个简单的示例代码: ```python import matplotlib.pyplot as plt # 柱状图数据 x = ['A', 'B', 'C', 'D'] y = [10, 20, 30, 40] # 绘制柱状图 plt.bar(x, y) # 添加标题和标签 plt.title('柱状图') plt.xlabel('X轴标签') plt.ylabel('Y轴标签') # 显示图形 plt.show() ``` 在这个例子中,我们使用`plt.bar()`函数绘制柱状图,然后使用`plt.title()`、`plt.xlabel()`和`plt.ylabel()`函数添加标题和标签。最后,我们使用`plt.show()`函数显示图形。 ### 回答2: Jupyter Notebook是一个极为流行及强大的交互式编程环境,通过不同的内核可以方便地使用多种编程语言进行交互式编程。 在Jupyter Notebook中绘制柱状图非常简单,以下是一些基本步骤: 一、安装所需的Python依赖项,如`matplotlib`和`numpy`。在Jupyter Notebook中,可以使用pip来安装它们。例如,在命令行中运行如下命令: ```python !pip3 install matplotlib numpy ``` 二、导入需要的库,例如: ```python import matplotlib.pyplot as plt import numpy as np ``` 三、创建数据 可以使用列表或NumPy数组等来存储柱状图所需的数据。例如,以下是一个简单的列表: ```python data = [1, 3, 2, 4, 5] ``` 四、绘制柱状图 可以使用`bar`函数来绘制柱状图。如下所示: ```python plt.bar(range(len(data)), data) plt.show() ``` 其中`range(len(data))`用于生成x轴上的刻度标签,`data`是柱子的高度。执行这段代码会得到如下的柱状图: ![柱状图](https://raw.githubusercontent.com/leungyukshing/nlp/main/develop/Python/image/bar.png) 五、自定义柱状图 除了最基本的柱状图外,您还可以进行自定义来使图表更具吸引力。例如,以下代码将设置图表的标题和标签,并使用不同的颜色: ```python x_labels = ['A', 'B', 'C', 'D', 'E'] plt.bar(range(len(data)), data, tick_label=x_labels, color=['red', 'green', 'blue', 'yellow', 'purple']) plt.xlabel('Category') plt.ylabel('Values') plt.title('My Bar Chart') plt.show() ``` 以上代码将生成以下柱状图: ![彩色柱状图](https://raw.githubusercontent.com/leungyukshing/nlp/main/develop/Python/image/color_bar.png) 六、绘制多系列柱状图 还可以绘制多组并排柱状图和多组堆积柱状图。以绘制并排柱状图为例,我们可以轻松地使用以下代码: ```python data1 = [1, 3, 2, 4, 5] data2 = [2, 4, 1, 3, 6] x_labels = ['A', 'B', 'C', 'D', 'E'] bar_width = 0.35 plt.bar(np.arange(len(data1)), data1, bar_width, label='Data1') plt.bar(np.arange(len(data2)) + bar_width, data2, bar_width, label='Data2') plt.xticks(np.arange(len(x_labels)) + bar_width / 2, x_labels) plt.legend() plt.show() ``` 以上代码将生成以下并排柱状图: ![并排柱状图](https://raw.githubusercontent.com/leungyukshing/nlp/main/develop/Python/image/group_bar.png) 绘制堆积柱状图基本类似,并仅需略微修改柱子的高度即可。 七、限制y轴范围 有时候我们的柱状图可能会出现数据波动相对较小的情况,这时候可以通过设置y轴限制来放大展现数据的差异,例如我们有如下数据: ```python data = [1, 1.5, 2.2, 1.8, 1.5, 1.3] ``` 将整体图像放大到y轴范围在1~2.5之间,代码如下: ```python plt.ylim(1, 2.5) ``` 完整代码: ```python import matplotlib.pyplot as plt import numpy as np data = [1, 1.5, 2.2, 1.8, 1.5, 1.3] plt.ylim(1, 2.5) plt.bar(range(len(data)), data) plt.show() ``` 效果如下: ![限制柱状图y轴范围](https://raw.githubusercontent.com/leungyukshing/nlp/main/develop/Python/image/y_limit_bar.png) 以上就是使用Jupyter Notebook绘制柱状图的基础知识和基本操作,您可以通过调整以上的代码来自定义您的柱状图以展现您需要的信息。 ### 回答3: Jupyter Notebook是一种基于Web的交互式计算环境,支持多种编程语言(如Python、R等)。针对Python语言,Jupyter Notebook具有强大的交互性和可视化功能,可以方便地展示数据分析或机器学习的结果。在这里,我们将介绍如何使用Jupyter Notebook画柱状图。 首先,我们需要导入相关的库。在Python中,matplotlib是最常用的可视化库之一。我们可以使用以下代码导入matplotlib库: ``` import matplotlib.pyplot as plt %matplotlib inline ``` 其中, `%matplotlib inline`指令可以在Notebook中直接绘制图形。 假设我们有一组数据如下: ``` data = {'apple': 30, 'banana': 20, 'orange': 25, 'pear': 15} ``` 我们可以使用matplotlib库中的`bar`函数来画柱状图。具体步骤如下: 1. 提取x轴上的类别和y轴上的数据。 ``` x = data.keys() y = data.values() ``` 2. 使用`bar`函数绘制柱状图。 ``` plt.bar(x, y) ``` 3. 添加其他样式 ``` plt.title("Fruit Distribution") plt.xlabel("Fruit") plt.ylabel("Amount") ``` 4. 显示图形。 ``` plt.show() ``` 完整代码如下: ``` import matplotlib.pyplot as plt %matplotlib inline data = {'apple': 30, 'banana': 20, 'orange': 25, 'pear': 15} x = data.keys() y = data.values() plt.bar(x, y) plt.title("Fruit Distribution") plt.xlabel("Fruit") plt.ylabel("Amount") plt.show() ``` 运行上述代码,便可以在Notebook中看到如下的柱状图。 ![柱状图](https://i.loli.net/2021/09/13/At6lSe3FZf5qJ9h.png) 除了基本的柱状图外,我们还可以进行其他样式的修改。例如,可以使用不同的颜色来区分不同的类别。此时,可以给`bar`函数添加`color`参数来指定颜色。例如,我们可以将apple和banana柱状图的颜色分别设置为红色和绿色: ``` plt.bar(x, y, color=['red', 'green', 'blue', 'orange']) ``` 如果我们需要画横向柱状图的话,可以使用`barh`函数。例如,我们可以将上述数据改为横向柱状图: ``` plt.barh(x, y, color=['red', 'green', 'blue', 'orange']) plt.title("Fruit Distribution") plt.xlabel("Amount") plt.ylabel("Fruit") plt.show() ``` 此时,我们会得到如下的图形: ![横向柱状图](https://i.loli.net/2021/09/13/Dz8BksRt7Wnvb1e.png) 总之,Jupyter Notebook提供了非常方便的可视化功能,可以快捷地展示数据分析或者机器学习的结果。利用matplotlib库,我们可以轻松地画出各种类型的柱状图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值