Python数据分析常见Matplotlib SeaBorn图表

news2024/9/22 1:35:27

Matplotlib绘图

Matplotlib基本概念

Matplotlib:基于对象的思维构建的视觉符号。

每一个Axes(坐标轴)对象包含一个或者多个Axis(轴)对象,比如X轴、Y轴。

一个Figure(画像)是由一堆坐标轴对象组成的。

换句话说,Marker(标记)/Line(线)表示针对一个或多个Axis(轴)绘制的数据集。一个Axes对象(有效地)是一个Figure(画像)的子图

连续图

绘制连续图(连线图、折线图)。

需求说明:对GDP数据按照年进行绘制。

默认方式

hfgdp = [0.2,0.23,0.3,0.36,0.42,0.47,0.53,0.58,0.65,0.74,0.86,0.94,1,1.14,1.2]
plt.plot(hfgdp)
plt.show()

添加轴说明

这里指定X轴为年份、Y轴位GDP值,标题为GDP data

hfgdp = [0.2,0.23,0.3,0.36,0.42,0.47,0.53,0.58,0.65,0.74,0.86,0.94,1,1.14,1.2]
years = [str(i) for i in range(2008,2008+len(hfgdp))]
fig,ax = plt.subplots()
ax.plot(years, hfgdp)
ax.set(xlabel='Years',ylabel='GDP',title='GDP data')
plt.show()

展示离散点

指定离散值以红点的形式展示。 

hfgdp = [0.2,0.23,0.3,0.36,0.42,0.47,0.53,0.58,0.65,0.74,0.86,0.94,1,1.14,1.2]
years = [str(i) for i in range(2008,2008+len(hfgdp))]
fig,ax = plt.subplots()
ax.plot(years, hfgdp ,"ro")
ax.set(xlabel='Years',ylabel='GDP',title='GDP data')
plt.show()

 标记marker的样式见下,一般常用的是“o”即圆点。

参数

说明

'-'

实线

'--'

虚线

'-.'

点划线

':'

冒号

'.'

','

像素

'o'

圆圈

'v'

下尖号

'^'

上尖号

'<'

左尖号

'>'

右尖号

'1'

下三角

'2'

上三角

'3'

左三角

'4'

右三角

's'

方块

'p'

五边形

'*'

星号

'h'

六边形

'H'

六边形

'+'

加号

'x'

字母x

'D'

钻石

'd'

细钻石

'|'

竖线

'_'

横线

参数

说明

'b'

蓝色

'g'

绿色

'r'

红色

'c'

青色

'm'

洋红

'y'

黄色

'b'

黑色

'w'

白色

指定输出格式

可以自定义颜色及线的粗细程度。

hfgdp = [0.2,0.23,0.3,0.36,0.42,0.47,0.53,0.58,0.65,0.74,0.86,0.94,1,1.14,1.2]
njgdp = [0.392,0.431,0.523,0.624,0.733,0.823,0.911,1.02,1.083,1.192,1.31,1.401,1.483,1.642,1.694]
years = [str(i) for i in range(2008,2008+len(hfgdp))]
fig,ax = plt.subplots()
ax.plot(years,hfgdp,color="#009150",linewidth=3.5,linestyle=":")
ax.plot(years,njgdp,color="#33036b",linewidth=1.5,linestyle="-.")
ax.set(xlabel='Years',ylabel='GDP',title='GDP data')
plt.show()

饼图

计算程序语言的占比的饼图。

labels =  'Python','C', 'Java', 'C++', 'C#', 'others'
rate = [14.26,13.06,11.19,8.66,5.92]
explode=(0,0.1,0,0,0.2,0)
rate.append(100-sum(rate))
fig,ax = plt.subplots()
ax.pie(rate,labels=labels,explode=explode,autopct='%1.0f%%',shadow=True,startangle=0)
plt.title("Program Language rate 2022 Mar")
plt.show()

柱状图

普通柱状图

通过柱状图展示GDP的明细数据。

hfgdp = [0.2,0.23,0.3,0.36,0.42,0.47,0.53,0.58,0.65,0.74,0.86,0.94,1,1.14,1.2]
years = [str(i) for i in range(2008,2008+len(hfgdp))]
fig,ax = plt.subplots()
plt.bar (years,hfgdp,color="#009150",linewidth=3.5,linestyle=":")
ax.set(xlabel='Years',ylabel='GDP',title='GDP data')
plt.show()

两分类堆叠柱状图

housedata=pd.read_csv('data/sndHsPr.csv')
data = housedata.pivot_table(values='price',index='dist',columns=['school'],aggfunc=np.mean)
data.plot(kind='bar',stacked=True)
plt.show()

多分类堆叠柱状图

housedata=pd.read_csv('data/sndHsPr.csv')
data = housedata.pivot_table(values='price',index='dist',columns=['school','subway'],aggfunc=np.mean)
data.plot(kind='bar',stacked=True)
plt.show()

直方图

housedata=pd.read_csv('data/sndHsPr.csv')
plt.hist(housedata['price'],bins=40)
plt.show()

概率密度图

import seaborn as sns
housedata=pd.read_csv('data/sndHsPr.csv')
price=housedata['price']
plt.hist(price,bins=40,density=True)
sns.kdeplot(price)
plt.show()
sns.displot(data=rate,kde=True)
plt.show()

散点图

housedata=pd.read_csv('data/sndHsPr.csv')
housedata.plot.scatter(x='area',y='price')
plt.show()

双轴图

通过展示GDP和GDP增长率,以双轴的形式显示。

hfgdp = [0.2,0.23,0.3,0.36,0.42,0.47,0.53,0.58,0.65,0.74,0.86,0.94,1,1.14,1.2]
hfgdpcr = [0.154,0.166,0.164,0.152,0.124,0.113,0.098,0.103,0.099,0.085,0.085,0.075,0.043,0.092,0.035]
#plt.plot(gdp)
#plt.xticks(rotation=270)
years = [str(i) for i in range(2008,2008+len(hfgdp))]
fig,ax = plt.subplots()
plt.bar (years,hfgdp,color="#009150",width=0.8)
ax.set(xlabel='Years',ylabel='GDP',title='GDP data')
plt.xticks(rotation=90) #控制x轴里值的显示方式,水平或者垂直及任意角度
axr=ax.twinx()
axr.plot(years,hfgdpcr,color="#001024",linewidth=2.5,linestyle="-.")

axr.set(ylabel='GDP increase rate',title='GDP data')
plt.show()

面积图

idx = [ 1, 2, 3, 4, 5, 6, 7, 8, 9]
y1 = [23, 42, 33, 43, 8, 44, 43, 18, 21]
y2 = [9, 31, 25, 14, 17, 17, 42, 22, 28]
y3 = [18, 29, 19, 22, 18, 16, 13, 32, 21]
plt.stackplot(idx,
y1, y2, y3)
plt.title('Stack Plot Example')
plt.show()

热力图

普通热力图

import seaborn as sns

import pandas as pd

df = pd.read_csv("data/automobile.csv")

sns.set(rc={'figure.figsize':(16,10)})

cm = df.columns.tolist()

xcorr = df.corr()

#cmap是设置热图的颜色

cmap = sns.diverging_palette(220, 10, as_cmap=True)

sns.heatmap(data=df.corr(),

            annot=True,

            linewidths=.5,

            center=0,

            cbar=True,

            #mask=mask,

            cmap=cmap, #"PiYG",

            fmt='0.2f')

#plt.savefig("data/mobile.png")

plt.show()

仅显示左下角热力图

import seaborn as sns

import pandas as pd

df = pd.read_csv("data/automobile.csv")



sns.set(rc={'figure.figsize':(16,10)})

cm = df.columns.tolist()

xcorr = df.corr()

#设置右上三角不绘制



#mask为 和相关系数矩阵xcorr一样大的 全0(False)矩阵

mask = np.zeros_like(xcorr, dtype=np.bool_)

# 将mask右上三角(列号》=行号)设置为True

mask[np.triu_indices_from(mask)] = True

#cmap是设置热图的颜色

cmap = sns.diverging_palette(220, 10, as_cmap=True)

sns.heatmap(data=df.corr(),

            annot=True,

            linewidths=.5,

            center=0,

            cbar=True,

            mask=mask,

            cmap=cmap, #"PiYG",

            fmt='0.2f')

plt.savefig("data/mobile.png")

plt.show() 

成对图

import seaborn as sns
import matplotlib.pyplot as plt
iris= sns.load_dataset('iris')
sns.pairplot(iris, hue='species')
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/740166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023中国数交会|美创科技获数字和软件服务行业两项大奖!

7月6日-9日&#xff0c;为期四天的2023中国国际数字和软件服务交易会&#xff08;简称&#xff1a;数交会&#xff09;圆满落幕。 作为国务院批准举办的国家级展会&#xff0c;本届数交会由商务部、科技部、中国贸促会和辽宁省政府主办&#xff0c;以“数字创新、融合发展”为主…

操作系统实战45讲|03.黑盒之中有什么、04.震撼的Linux全景图

03.黑盒之中有什么 黑盒之中有什么 从抽象的角度来看&#xff0c;内核就是计算机资源的管理者&#xff0c;管理资源是为了让应用使用资源。 计算机中的资源分为两类&#xff1a;硬件资源、软件资源&#xff1b; 硬件资源有以下这些&#xff1a; 总线&#xff0c;负责连接各种…

一个Transformer在尺度上适合多模态扩散的所有分布

文章目录 One Transformer Fits All Distributions in Multi-Modal Diffusion at Scale摘要本文方法实验结果 One Transformer Fits All Distributions in Multi-Modal Diffusion at Scale 摘要 本文提出了一个统一的扩散框架(UniDiffuser)来拟合一个模型中与一组多模态数据相…

Vue3+Vite+Pinia+Naive后台管理系统搭建之三:vue-router 的安装和使用

前言 如果对 vue3 的语法不熟悉的&#xff0c;可以移步 Vue3.0 基础入门快速入门。 如果对 vue-router 语法不熟悉的&#xff0c;可以移步Vue3 系列&#xff1a;vue-router。 1. 安装依赖 yarn add vue-router // or npm install vue-router 2. 构建 src/router/index.js …

对话式ai人工智能的主要好处有哪些

对话式 AI 是客户服务的一个重要且不断增长的组成部分&#xff0c;尤其是客户越来越多地采用的数字自助服务。 对话式 AI 可以在提高客户满意度 (CSAT) 方面发挥很重要的作用。在 IBM 于 2021 年进行的一项研究中&#xff0c;99% 的公司报告称&#xff0c;由于使用虚拟对话式 …

支持源码的低代码核心工具,逻辑引擎

在现代企业管理中&#xff0c;决策扮演着至关重要的角色。然而&#xff0c;随着业务规模的扩大和数据量的增加&#xff0c;人工决策变得越来越困难和耗时&#xff0c;而且容易受到主观因素的影响。逻辑引擎的出现为企业提供了一种高效、准确的决策推理工具&#xff0c;能够以逻…

数字化转型迫在眉睫

在挑战商业世界现状并实现数字化转型时&#xff0c;一定程度的阻力是不可避免的。事实上&#xff0c;《福布斯》的一篇文章援引哈佛商学院的研究表明&#xff0c;70%的组织变革努力都失败了&#xff0c;“原因之一是高管们没有从足够多的人那里了解他们的计划和想法。”支持。”…

市面上的ipad国产触控笔怎么样?好用的电容笔合集

而对那些把IPAD当作学习工具的人而言&#xff0c;这个Apple Pencil绝对是不可或缺的。然而&#xff0c;苹果版本的Pencil却是昂贵得让许多人望而却步。因此&#xff0c;最佳方法是选择一个平替的电容笔。我是从几年前开始用IPAD的&#xff0c;也是一个数码爱好者&#xff0c;近…

AIGC行业周刊【2023-0709】【第六期】2023年世界人工智能大会大佬发言汇总

点击加入->【智子纪元-AIGC】技术交流群 一、大咖观点&#xff1a; 0709AI日报&#xff1a;2023年世界人工智能大会大佬发言汇总「5年内&#xff0c;人类程序员没了」&#xff0c;Stability AI老板大胆预测&#xff0c;一众大佬狂怼&#xff1a;大错特错&#xff0c;都懒得…

在vite创建的vue3项目中加载Cesium立体地形信息并调整初始化角度

在vite创建的vue3项目中加载Cesium立体地形信息并调整初始化角度 使用vite创建vue3项目 npm create vitelatestcd到创建的项目文件夹中 npm install安装Cesium npm i cesium vite-plugin-cesium vite -D配置 &#xff08;1&#xff09;在项目的vite.config.js文件中添加&#x…

算法训练营第三十一天||理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

理论基础 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 这么说有点抽象&#xff0c;来举一个例子&#xff1a; 例如&#xff0c;有一堆钞票&#xff0c;你可以拿走十张&#xff0c;如果想达到最大的金额&#xff0c;你要怎么拿&#xff1f; 指定每次…

专项练习24

目录 一、选择题 1、JavaScript 中的数字在计算机内存中占多少个Byte&#xff1f; 2、请问以下JS代码会输出什么 二、编程题 1、以数字的形式返回数字参数向下取整的结果 一、选择题 1、JavaScript 中的数字在计算机内存中占多少个Byte&#xff1f; A、2 Byte B、4Byte C…

如何在购物 App 上实现商品快递物流信息的展示

前言 现如今&#xff0c;人们大多数会选择在手机购物App上进行购物&#xff0c;这样买东西很是便捷&#xff0c;不用出门就能买到全国各地甚至是国外的商品&#xff0c;下单之后只需要等待快递送达就可以了。一个购物APP&#xff0c;不可或缺的一个辅助功能就是&#xff0c;展…

GPT-4 验明真身的经典三连问:快速区分 GPT-3.5 与 GPT-4

GPT-4 验明真身的经典三连问&#xff1a;快速区分 GPT-3.5 与 GPT-4

华为VRP系统基础

系列文章目录 华为数通学习&#xff08;1&#xff09; 目录 一&#xff0c;什么是VRP? 二&#xff0c;VRP的发展 三&#xff0c;VRP的文件系统 3.1&#xff0c;系统文件:.cc结尾 ​编辑 3.2&#xff0c;配置文件&#xff1a;.cfg&#xff0c;.zip&#xff0c;.dat结尾 3.…

统计年,月,日,java补充无的数据

需求&#xff1a;营收趋势图。需要按年&#xff0c;按月&#xff0c;按日。按年&#xff0c;后方选择日历 起始年-结束年。例如start2013 end 2023 按月&#xff0c;后方选择月份 起始月-结束月。例如start 2022-10 end 2023-07。 按日&#xff0c;后方选择日 起始日-结束日。例…

Vue-CodeMirror 使用

vue2 安装 npm install vue-codemirror -S # or yarn add vue-codemirror -S 全局配置&#xff0c;main.js文件引入 import VueCodemirror from vue-codemirror // import base style import codemirror/lib/codemirror.css Vue.use(VueCodemirror)Vue 文件内使用 <templ…

QDialog的相关API函数

目录 常用的一些 API 函数: QDialog 的子类 QMessageBox&#xff1a; QFileDialog QFont 字体类 QColorDialog QInputDialog QProgressDialog 总结 QDialog是Qt框架中的一个控件类&#xff0c;用于实现对话框的界面。对话框通常用于显示一个独立的窗口&#xff0c;该窗口会显…

手撕spring05(xml解析bean)

概述 通过加载配置文件的信息&#xff0c;注册xml的bean配置 整体设计 知识点补充 返回指定资源的输入流 // 相对路径获取流 java.lang.ClassLoader#getResourceAsStream // 绝对路径获取流 java.io.FileInputStream#FileInputStream(java.io.File) // URL获取流 java.net…

尚医通02:医院API的CRUD+环境搭建

目录 今日必会 项目环境搭建 医院设置模块搭建 配置使用Swagger2 统一返回结果 实现带条件带分页查询接口 新增、修改接口开发 批量删除、锁定医院设置 统一异常处理 今日必会 1.简单的搭建环境。要明白什么时候是pom/war/jar yygh_parent <pom> commo…