当前位置: 首页 > wzjs >正文

怎样学习做网站的编程Wordpress 微博 链接

怎样学习做网站的编程,Wordpress 微博 链接,黄页网站大全在线看免费,搜索引擎优化的意思【数据分析】MatplotlibPandasSeaborn绘图 (一)Matplotlib绘图1.1 matplotlib绘图方式1: 状态接口1.2 matplotlib绘图方式2: 面向对象1.3 通过安斯科姆数据集, 说明可视化的重要性1.4 MatPlotlib绘图-单变量-直方图1.5 MatPlotlib绘图-双变量-散点图1.6 …

【数据分析】Matplotlib+Pandas+Seaborn绘图

    • (一)Matplotlib绘图
      • 1.1 matplotlib绘图方式1: 状态接口
      • 1.2 matplotlib绘图方式2: 面向对象
      • 1.3 通过安斯科姆数据集, 说明可视化的重要性
      • 1.4 MatPlotlib绘图-单变量-直方图
      • 1.5 MatPlotlib绘图-双变量-散点图
      • 1.6 Matplotlib绘图-多变量-散点图
    • (二)Pandas绘图
      • 2.1 单变量-柱状图
    • (三)Seaborn绘图
      • 3.1 Seaborn绘图-单变量
        • 3.1.1 需求1: 绘制 总消费金额的 直方图.
        • 3.1.2 需求2: 绘制 总消费金额的 密度图
        • 3.1.3 需求3: 绘制 按天(Day)统计的 计数图
      • 3.2 Seaborn绘图-双变量
        • 3.2.1 需求1: 绘制散点图
        • 3.2.2 需求2: 绘制2D密度图
        • 3.2.3 需求3: 绘制 箱线图
        • 3.2.4 需求5: 绘制小提琴图
      • 3.3 Seaborn绘制 多变量
      • 3.4 Seaborn的样式
    • (四)参考资料
      • 4.1 Color清单

相关数据集下载:数据集

(一)Matplotlib绘图

# 导入依赖包
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as snsimport os# 手动修改 工作空间目录, 即: 修改相对路径的地址
os.chdir('./')
os.getcwd()plt.rcParams['font.sans-serif'] = ['SimHei']  # 正常显示汉字
plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号

1.1 matplotlib绘图方式1: 状态接口

# 大白话解释: 状态接口 就是通过 plt对象, 调用提供的公共接口(函数), 完成各种操作.
# 0. 准备一些数据, 即: 指定X轴值, Y轴值.
x = [-3, 5, 7]
y = [10, 2, 5]# 1. 创建画布
plt.figure(figsize=(10, 5))# 2. 具体的绘图
plt.plot(x, y)# 3. 设置x轴 和 y轴值的范围.
plt.xlim(-1, 10)
plt.ylim(0, 10)# 4. 设置x轴, y轴显示的内容.
plt.xlabel('我是X轴', fontsize=20)
plt.ylabel('我是y轴')# 5. 设置标题
plt.title('我是状态接口方式绘图')
plt.grid()  # 可选项, 绘制网格# 6. 具体的绘图
plt.show()

在这里插入图片描述

1.2 matplotlib绘图方式2: 面向对象

# 大白话解释: 获取坐标系对象, 通过坐标系对象 . 的方式, 调用函数, 绘图.
# 0. 准备一些数据, 即: 指定X轴值, Y轴值.
x = [-3, 5, 7]
y = [10, 2, 5]# 1. 创建画布, 坐标轴(坐标系)对象.   fig: 画布, ax: 坐标轴对象
fig, ax = plt.subplots(figsize=(10, 5))# 2. 具体的绘图
ax.plot(x, y)# 3. 设置x轴 和 y轴值的范围.
ax.set_xlim(-1, 10)
ax.set_ylim(0, 10)# 4. 设置x轴, y轴显示的内容.
ax.set_xlabel('我是X轴', fontsize=20)
ax.set_ylabel('我是y轴')# 5. 设置标题
ax.set_title('我是状态接口方式绘图')
ax.grid()  # 可选项, 绘制网格# 6. 具体的绘图
plt.show()

在这里插入图片描述

1.3 通过安斯科姆数据集, 说明可视化的重要性

# 1. 加载数据源, 获取df对象.
anscombe = pd.read_csv('data/anscombe.csv')
print(anscombe)

在这里插入图片描述

# 2. 查看各组数据集
anscombe[anscombe['dataset'] == 'I']
anscombe[anscombe['dataset'] == 'II']
anscombe[anscombe['dataset'] == 'III']
anscombe[anscombe['dataset'] == 'IV']# 3. 查看上述各组数据的详情.
anscombe.groupby('dataset').describe().T

在这里插入图片描述

# 4. 通过查看统计结果, 我们发现上述的四组数据高度相似, 那么他们就是相似或者相同的数据吗? 绘制出来的图表是同样的.  我们来可视化看一下.
# 4.1 创建画布
fig = plt.figure(figsize=(16, 8))# 4.2 创建四个子图
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)# 4.3 具体的绘制四个子图.
ax1.scatter(anscombe[anscombe['dataset'] == 'I']['x'], anscombe[anscombe['dataset'] == 'I']['y'])
ax2.scatter(anscombe[anscombe['dataset'] == 'II']['x'], anscombe[anscombe['dataset'] == 'II']['y'])
ax3.scatter(anscombe[anscombe['dataset'] == 'III']['x'], anscombe[anscombe['dataset'] == 'III']['y'])
ax4.scatter(anscombe[anscombe['dataset'] == 'IV']['x'], anscombe[anscombe['dataset'] == 'IV']['y'])# 4.4 设置子图标题
ax1.set_title('数据集I')
ax2.set_title('数据集II')
ax3.set_title('数据集III')
ax4.set_title('数据集IV')# 4.5 设置大图的标题.
fig.suptitle('Anscombe数据集', fontsize=20)# 4.6 具体的绘.
plt.show()

在这里插入图片描述

1.4 MatPlotlib绘图-单变量-直方图

# 1. 加载源数据, 获取df对象.
tips = pd.read_csv('data/tips.csv')
print(tips)

在这里插入图片描述

# 2. 绘制直方图. 例如: 查看下 各个区间总消费的分布情况.  假设 1 ~ 10 多少次,  11 ~ 50 多少次...
plt.figure(figsize=(16, 8))# 参数解释: x 表示x轴值显示的内容.  bins: 几个区间.
plt.hist(x=tips['total_bill'], bins=10)  # 这里的10意思是: 划分10个区间.# 设置标题
plt.title('总消费金额分布情况', fontsize=20)
plt.grid(True)  # 网格
plt.show()# 上述的bins = 10, 是划分了10个区间, 其实就是指定 起始值, 结束值, 然后生成长度为 区间+1 个的等差数列
# 生成等差数列. # np.linspace(3.07, 50.81, 11)        # 生成 3.07 到 50.81之间, 11个等差数值

在这里插入图片描述

1.5 MatPlotlib绘图-双变量-散点图

# 1. 创建画布
plt.figure(figsize=(16, 8))# 2. 绘制散点图, 适合: 展示双变量(两个值的关系)
# x轴: 总消费金额,  y轴: 小费金额
plt.scatter(x=tips['total_bill'], y=tips.tip)# 3. 设置x轴, y轴显示内容.
plt.xlabel('总消费金额')
plt.ylabel('小费金额')# 4. 设置网格
plt.grid(True)# 5. 绘图.
plt.show()

在这里插入图片描述

1.6 Matplotlib绘图-多变量-散点图

# 1. 查看数据源.
tips  # 发现, 有性别, 但是没有指定, 什么性别, 用什么颜色的点来回执, 给表新增1列, 表示: 性别的(散点)颜色# 2. 自定义函数, 接收性别, 判断值, 基于颜色.
def recode_sex(sex):if sex == 'Female':return 'r'  # 'r' => redelse:return 'b'  # 'b' => blue, 基础颜色可以直接只写1个字母# 3. 给tips新增一列.
tips['sex_color'] = tips['sex'].apply(recode_sex)
print(tips)

在这里插入图片描述

# 4. 绘制, 多变量, 散点图.
# 4.1 创建画布
plt.figure(figsize=(16, 8))# 4.2 具体的绘图, 散点图
# x轴: 总消费金额, y轴: 小费, c: color(散点的颜色), s: size(散点的大小), alpha: 散点的透明度
plt.scatter(tips.total_bill, tips.tip, c=tips['sex_color'], s=tips['size'] * 10, alpha=0.5)# 4.3 设置x轴, y轴显示内容.
plt.xlabel('总消费金额')
plt.ylabel('小费金额')# 4.4 设置网格
plt.grid(True)# 4.5 绘图
plt.show()

在这里插入图片描述

(二)Pandas绘图

# 1. 加载数据源, 获取数据.
review = pd.read_csv('data/winemag-data_first150k.csv')
print(review)

在这里插入图片描述

2.1 单变量-柱状图

# 需求1: 看看哪个产区的葡萄酒品种多.
# 定义变量 kwargs, 表示: 图形所需要用到的参数
# figsize: 设置宽高, color: 可选的颜色, grid: 网格线
kwargs = dict(figsize=(12, 6), color=['r', 'g', 'b', 'orange', 'pink'], grid=True)# bar: 柱状图
review['province'].value_counts().head(10).plot.bar(**kwargs)

在这里插入图片描述

# 需求2: 计算 加利福尼亚葡萄酒占总数的百分比.
# (review['province'].value_counts().head(1) / len(review)).plot.bar(**kwargs)# 上述需求意义不大, 我们改造下, 改为: 葡萄酒种类最多的10个产品, 各自占比
(review['province'].value_counts().head(10) / len(review)).plot.bar(**kwargs)

在这里插入图片描述

# 需求3: 给出评分数量的分布情况
review['points'].value_counts().sort_index().plot.bar(**kwargs)

在这里插入图片描述

# 需求4: 折线图, 比较适合 连续值 的情况.
review['points'].value_counts().sort_index().plot.line(**kwargs)  # 评分是一个连续值. 

在这里插入图片描述

# 需求5: 面积图, 即: 把折线下边的区域, 用颜色填充.
review['points'].value_counts().sort_index().plot.area(**kwargs)

在这里插入图片描述

# 需求6: 饼图, 适合展示 少量的分类分布情况, 可以和柱状图切换. 
review['province'].value_counts().head(10).plot.pie(figsize=(20, 10))

在这里插入图片描述

(三)Seaborn绘图

3.1 Seaborn绘图-单变量

# 1. 加载源文件, 获取df对象.
tips = pd.read_csv('data/tips.csv')
print(tips)

在这里插入图片描述

3.1.1 需求1: 绘制 总消费金额的 直方图.
# step1: 创建画布, 坐标轴对象.
fig, ax = plt.subplots(figsize=(16, 8))# step2: 绘图, data: 表示数据源, 即: 从哪个df或者 series对象中 加载数据.   x: 设置x轴值
# kde: 核密度折线, 用于分析 数据的正态分布情况的, 样本数据, 数据分布...
sns.histplot(data=tips, x='total_bill', kde=True)# step3: 设置标题
ax.set_title('总消费金额直方图', fontsize=15)# step4: 具体的绘制.
plt.show()      # 可以省略不写.

在这里插入图片描述

3.1.2 需求2: 绘制 总消费金额的 密度图
# 密度图介绍: 它也是展示单变量的一种图形, 本质是通过绘制以每个数据点为中心的正态分布, 然后消除重叠, 使曲线下的面积为1来绘制.
# 目的: 查看数据的分布情况. 
# 1. 创建画布, 坐标轴对象.
fig, ax = plt.subplots(figsize=(16, 8))# 2. 绘图.
# sns.kdeplot(data=tips, x='total_bill')      # 写法1
sns.kdeplot(tips['total_bill'])               # 写法2, 语法糖# 3. 设置标题.
ax.set_title('总消费金额-密度图')# 4. 具体的展示动作.
plt.show()

在这里插入图片描述

3.1.3 需求3: 绘制 按天(Day)统计的 计数图
# 1. 创建画布, 坐标轴对象.
fig, ax = plt.subplots(figsize=(16, 8))# 2. 绘图.
sns.countplot(data=tips, x='day')# 3. 设置标题.
ax.set_title('按天统计-计数图')# 4. 具体的展示动作.
plt.show()

在这里插入图片描述

3.2 Seaborn绘图-双变量

3.2.1 需求1: 绘制散点图
# 前言: 在Seaborn中, 绘制散点图有很多的方式, 例如: scatterplot(), regplot(), jointplot()
# 方式1: scatter()方式绘制.
# 1. 创建画布, 坐标轴对象.
fig, ax = plt.subplots(figsize=(16, 8))# 2. 绘图
# hue: 按哪列分组, 传入1个类别字段即可. 
# sns.scatterplot(data=tips, x='total_bill', y='tip', hue='sex')
sns.scatterplot(data=tips, x='total_bill', y='tip')# 3. 设置标题.
ax.set_title('总消费金额-小费 关系图')# 4. 具体的展示动作.
plt.show()

在这里插入图片描述

# 方式2: regplot()方式绘制, 散点图 + 拟合回归线. 
# 1. 创建画布, 坐标轴对象.
fig, ax = plt.subplots(figsize=(16, 8))# 2. 绘图.
# sns.regplot(data=tips, x='total_bill', y='tip', fit_reg=False)  # fit_reg=False 关闭拟合回归线
sns.regplot(data=tips, x='total_bill', y='tip')     # fit_reg 表示是否回执 拟合回归线, 默认是: True(绘制)# 3. 设置标题.
ax.set_title('总消费金额-小费 关系图')# 4. 具体的展示动作.
plt.show()

在这里插入图片描述

# 方式3: jointplot()方式绘制, 散点图 + (各行各列)直方图. 
# 散点图 + 直方图
# sns.jointplot(data=tips, x='total_bill', y='tip', height=10)     # 特殊图形, 不结合画布使用, 设置宽高用  height属性即可.# 蜂巢图 + 直方图,  kind: 图形类型.
sns.jointplot(data=tips, x='total_bill', y='tip', height=10, kind='hex')   # hex等价于MatPlotlib的hexbin(), 蜂巢图

在这里插入图片描述

3.2.2 需求2: 绘制2D密度图
# 2D密度图 和 之前绘制的密度图类似, 只不过 2D密度图反应的是两个变量的变量.
# 1. 创建画布, 坐标轴对象
fig, ax = plt.subplots(figsize=(12, 6))# 2. 绘图
# data: 要操作的数据集(df对象或者Series对象)
# x, y: x轴, y轴显示的内容.
# fill: 表示是否填充.
# cbar: 表示是否显示右侧的图例. 
sns.kdeplot(data=tips, x='total_bill', y='tip', fill=True, cbar=True)# 3. 设置x轴, y轴值内容.
ax.set_xlabel('总消费金额')
ax.set_ylabel('小费金额')# 4. 具体的绘图
plt.show()

在这里插入图片描述

3.2.3 需求3: 绘制 箱线图
# 箱线图用于显示多种统计信息, 例如: 最小值, 1/4分位, 中位数, 3/4分位, 最大值, 以及离群值(如果有), 一般用于 异常值的检测.
# 1. 创建画布, 坐标轴对象
fig, ax = plt.subplots(figsize=(12, 6))# 2. 绘图.
# data: 要操作的数据集(df对象或者Series对象)
# x: x轴的内容, 这里是: 消费类型(午餐, 晚餐)
# y: y轴的内容, 这里是: 总消费金额
sns.boxplot(data=tips, x='time', y='total_bill')# 3. 设置x轴, y轴值内容.
ax.set_xlabel('消费类型(午餐/晚餐)')
ax.set_ylabel('总消费金额')# 4. 具体的绘图
plt.show()

在这里插入图片描述

3.2.4 需求5: 绘制小提琴图
# 箱线图会掩盖数据的分布, 小提琴图可以把箱线绘制成 核密度预估.
# 1. 创建画布, 坐标轴对象
fig, ax = plt.subplots(figsize=(12, 6))# 2. 绘图.
# data: 要操作的数据集(df对象或者Series对象)
# x: x轴的内容, 这里是: 消费类型(午餐, 晚餐)
# y: y轴的内容, 这里是: 总消费金额
sns.violinplot(data=tips, x='time', y='total_bill')# 3. 设置x轴, y轴值内容.
ax.set_xlabel('消费类型(午餐/晚餐)')
ax.set_ylabel('总消费金额')# 4. 具体的绘图
plt.show()

在这里插入图片描述

3.3 Seaborn绘制 多变量

# Seaborn绘制多变量, 没有标准的套路, 可以加入: 形状, 颜色, 大小等来区分.
# 1. 创建画布, 坐标轴对象
plt.rcParams['font.sans-serif'] = ['SimHei']  # 正常显示汉字
fig, ax = plt.subplots(figsize=(12, 6))# 2. 绘图.
# data: 要操作的数据集(df对象或者Series对象)
# x: x轴的内容, 这里是: 消费类型(午餐, 晚餐)
# y: y轴的内容, 这里是: 总消费金额
# hue: 基于哪列字段进行分组.
# split: 结合hue参数使用时有效, 可以把 多个类别的数据组合到一起, 方便查看.
sns.violinplot(data=tips, x='time', y='total_bill', hue='sex', split=True)     # 变量1: 时间time, 变量2: total_bill 总消费金额, 变量3: sex 性别# 3. 设置x轴, y轴值内容.
ax.set_xlabel('消费类型(午餐/晚餐)')
ax.set_ylabel('总消费金额')# 4. 具体的绘图
plt.show()

在这里插入图片描述

3.4 Seaborn的样式

# Seaborn的样式是 设置一次以后, 其它的图就都生效了, 即: 都会使用这个样式.
# 格式: sns.set_style('样式名')
# 样式分类:  white(白色背景, 默认), whitegrid(白色背景 + 网格), dark(深色背景), darkgrid(深色背景 + 网格), ticks(轴的(分组)标线)
# 设置Seaborn的样式.
sns.set_style('ticks')
plt.rcParams['font.sans-serif'] = ['SimHei']  # 正常显示汉字# 1. 创建画布, 坐标轴对象
fig, ax = plt.subplots(figsize=(12, 6))# 2. 绘图
sns.violinplot(data=tips, x='time', y='total_bill', hue='sex', split=True)     # 变量1: 时间time, 变量2: total_bill 总消费金额, 变量3: sex 性别# 3. 设置x轴, y轴值内容.
ax.set_xlabel('消费类型(午餐/晚餐)')
ax.set_ylabel('总消费金额')# 4. 具体的绘图
plt.show()

在这里插入图片描述

(四)参考资料

4.1 Color清单

在这里插入图片描述


文章转载自:

http://2UYz5K56.wbysj.cn
http://2IKIbH9V.wbysj.cn
http://FZSr5xBH.wbysj.cn
http://mbkCfmwu.wbysj.cn
http://giQaOYcF.wbysj.cn
http://1e8Wa2ec.wbysj.cn
http://qlRVOHeO.wbysj.cn
http://mWncWwqn.wbysj.cn
http://247x4FQu.wbysj.cn
http://LPQk2sF3.wbysj.cn
http://WUjXMiNg.wbysj.cn
http://nTgvThrK.wbysj.cn
http://g7jmcxQn.wbysj.cn
http://8RxAQcFy.wbysj.cn
http://dQFbLDiz.wbysj.cn
http://jtSfCZ5E.wbysj.cn
http://9Pg8XC84.wbysj.cn
http://dNj4pOMD.wbysj.cn
http://4pkxL67g.wbysj.cn
http://9DjBhDZv.wbysj.cn
http://XCcC47uh.wbysj.cn
http://pLaA5iX1.wbysj.cn
http://gjsZFTdB.wbysj.cn
http://0zqSH0Sy.wbysj.cn
http://A7u1ZMsW.wbysj.cn
http://f01e5uEq.wbysj.cn
http://zJd6Wcfo.wbysj.cn
http://nmjVJtrQ.wbysj.cn
http://jZClaBwD.wbysj.cn
http://0805zeHG.wbysj.cn
http://www.dtcms.com/wzjs/775959.html

相关文章:

  • 做软件赚钱还是做网站赚钱公司网站建设模块
  • 海林建设局网站网站编辑做图片用什么不同
  • 单屏网站设计纵横天下营销型网站建设
  • 备案修改网站名称页面首页wordpress
  • 南宁网站推广流程六安事件最新情况
  • 网站内部优化策略wordpress 验证码
  • 网站建设服务器租用wordpress 不显示首页
  • 东莞网站制作的方案哪里有网站推广软件
  • 长治一般做一个网站需要多少钱wordpress4.5 ueditor 1.4.3
  • 有域名和空间怎么做网站响应式wordpress模板下载
  • 一个人做网站要多久wordpress用户部门
  • 哪里有做响应式网站的app推广代理加盟
  • 上海的网站名潮州市网站建设公司
  • 宁波网站制作费用域名检测
  • 网站建设 总体目标企查查企业信息查询在线查询
  • 一个完整的网站制作流程金融企业如何做好网络推广
  • 网站建设哪些模板号网站建设服务网络服务
  • 两学一做网站条幅wordpress 浮动窗口插件
  • 南宁企业网站制作哪家好网站建设这方面的
  • wordpress 网上支付苏州电商关键词优化
  • 网站的用户运营值得做吗深圳外贸公司推荐
  • 超市代理商网站模板设计制作费税率是多少
  • 什么网站做的号网站建设的公司上海
  • 网站推广策划的策略房地产销售好做吗
  • 做网站要注意哪些问题wordpress工单插件
  • 新乡营销网站建设公司哪家好网站建设类文章要发多少片
  • 怎么注册网站平台做网站百度收费吗
  • 手机网站 源码小程序开发工具
  • 百度网站模板免费下载阜城网站建设代理
  • 做视频网站都需要什么软件网站开发 -(广告)