第五章可视化

2023-11-11

1散点图

1.代码

        A:未处理异常值

import ggplot as gp
import pandas as pd
import numpy as np
crime=pd.read_csv("crimeRatesByState2005.csv")
#去除异常值
#geom_point()折线散点图
#stat_smooth(color)添加趋势线
#ggplot(data, aes(x, y)) ,给参数data里传入数据,x里传入横坐标数据,y里传入纵坐标数据,即可画出一个空白框图
print(gp.ggplot(gp.aes(x='murder',y='burglary'),data=crime)+gp.geom_point(color='red'))

B:

import ggplot as gp
import pandas as pd
import numpy as np
crime=pd.read_csv("crimeRatesByState2005.csv")
#去除异常值
crime2=crime[crime.state!='United States']
crime2=crime2[crime2.state!='District of Columbia']
#geom_point()折线散点图
#stat_smooth(color)添加趋势线
#ggplot(data, aes(x, y)) ,给参数data里传入数据,x里传入横坐标数据,y里传入纵坐标数据,即可画出一个空白框图
print(gp.ggplot(gp.aes(x='murder',y='burglary'),data=crime2)+gp.geom_point()+gp.stat_smooth(method='loess',color='red'))

2.分析

(1)ggplot(data, aes(x, y)) ,给参数data里传入数据,x里传入横坐标数据,y里传入纵坐标数据,即可画出一个空白框图

(2)geom_point(),散点图;geom_line(),折线图

geom_point() + geom_line(),折线散点图

(3)stat_smooth(color),添加趋势线

(4)AttributeError: module 'pandas' has no attribute 'tslib'

找到ggplot包中的utils.py模块,把pd.tslib.Timestamp 改为pd.Timestamp

>>>在ggplot包中stats目录下找到smoothers.py模块,把 from pandas.lib import Timestamp 改为 from pandas import Timestamp,把 pd.tslib.Timestamp 改为 pd.Timestamp。

>>>smoothed_data = smoothed_data.sort ('x')改为smoothed_data =smoothed_data.sort_values('x')

3.结果

A:

B:

2散点图距阵

1.代码

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
crime=pd.read_csv("crimeRatesByState2005.csv")
crime2=crime[crime.state!="United States"]
crime2=crime2[crime2.state!="District of Columbia"]
g=sns.pairplot(crime2,diag_kind="kde")
plt.show()
#可通过设置diag_kind参数设置对角图像,’kde‘设置为密度图 'hist'设置为直方图

2.分析

3.结果

3气泡图

1.代码

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
crime=pd.read_csv("crimeRatesByState2005.csv")
print(list(crime.murder))
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']#处理乱码问题
crime2=crime[crime.state!="United States"]#去除异常值
crime2=crime2[crime2.state!="District of Columbia"]
#对”人口“数据处理
z=list(crime2.population/10000)
colors=np.random.rand(len(list(crime2.murder)))
cm=plt.cm.get_cmap('RdYlBu')
#s:指定散点图点的大小,默认为20,通过传入其他数值型变量,可以实现气泡图的绘制。
#c:指定散点图点的颜色,默认为蓝色,也可以传递其他数值型变量,通过cmap参数的色阶表示数值大小。
#alpha:设置散点的透明度。inewidths:设置散点边界线的宽度
cm=plt.scatter(list(crime2.murder), list(crime2.burglary),s=z,c=z,cmap =  cm,linewidth=0.5,alpha=0.5)
plt.xlabel("谋杀案")#x轴标签
plt.ylabel("入室盗窃")#y轴标签
plt.title('入室盗窃与谋杀相关性的气泡图')
plt.show()

2.分析

(1)在设置标题时,可以处理乱码问题

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

(2)气泡图的创建使用函数:scatter(x, y, s=20, c=None,  cmap=None, alpha=None, linewidths=None)

#s:指定散点图点的大小,默认为20,通过传入其他数值型变量,可以实现气泡图的绘制。

#c:指定散点图点的颜色,默认为蓝色,也可以传递其他数值型变量,通过cmap参数的色阶表示数值大小。

#alpha:设置散点的透明度。inewidths:设置散点边界线的宽度

(3)plt.xlabel("mueder") #x轴标签

plt.ylabel("burglary") #y轴标签

plt.title('入室盗窃与谋杀相关性的气泡图')  #设置标签

3.结果

4茎叶图

1.代码

import numpy as np
import math
from itertools import groupby
import pandas as pd
birth=pd.read_csv("birth-rate.csv")
birth.dropna(subset=['2008'],inplace=True)
dirt={}          #字典
data=list(round(birth['2008'],1))
rangenum=[]     #列表
#k 和 h 分别为每个数值的十位数字和个位数字的字符形式
for k,g in groupby(sorted(data),key=lambda x:int(x)):
    lst=map(str,list(map(lambda y:divmod(int(y*10),10)[1],list(g))))
    dirt[k]=''.join(lst)
    rangenum.append(k)
num=list(range(rangenum[0],rangenum[-1],2))
for i in num:
    a=''
    for k in sorted(dirt.keys()):
        if 0<=k-i<=1:
            a=a+''+dirt[k]
        elif k-i>1:
            break
    print(str(i).rjust(5),'|',a)

2.分析

3.结果

5直方图

1.代码

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import pandas as pd
import numpy as np
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']#设置字体
plt.rcParams['axes.unicode_minus']=False #字符显示
titanic=pd.read_csv("birth-rate.csv")
#dropna(subset=None,inplace=False)处理缺失值
# subset   array-like选定列  potional所有列
# inplace  True在原表上进行修改 False不在原表上进行修改
titanic.dropna(subset=['2008'],inplace=True)#处理缺失值,删除含有缺失2008中的值
plt.style.use('ggplot')
#bins:指定直方图条形的个数 edgecolor:设置直方图边框色
# label:设置直方图的标签,可通过legend展示其图例
plt.hist(titanic['2008'],bins=10,color='pink',edgecolor='k',label='直方图')
#参数 top, left, bottom,right的值为布尔值,分别代表设置绘图区四个边框线上的的刻度线是否显示
plt.tick_params(top=False,right=False)#去除右边和顶部边界的刻度
plt.legend()
plt.xlabel("出生率(%)")
plt.ylabel("频率(%)")
plt.show()

2.分析

(1)titanic.dropna(subset=['2008'],inplace=True)

#dropna(subset=None,inplace=False)处理缺失值,删除含有缺失2008中的值

DataFrame.dropna(axis=0,how='any',thresh=None,subset=None,inplace=False)

# 0表示对包含缺失值的行进行删除   1表示对包含缺失值的列进行删除

# how   any表示有任何NA存在就删除所在行或列  all表示该行或列必须都是NA才删除

# thresh   int整数数据类型  optional随意数据类型

# subset  array-like选定列  potional所有列

# inplace  True在原表上进行修改   False不在原表上进行修改

(2)

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']#设置字体

plt.rcParams['axes.unicode_minus']=False #字符显示

(3)绘制直方图

#bins:指定直方图条形的个数 edgecolor:设置直方图边框色

# label:设置直方图的标签,可通过legend展示其图例

plt.hist(titanic['2008'],bins=10,color='pink',edgecolor='k',label='直方图')

(4)plt.tick_params(top=True,right=True)

#参数 top, left, bottom,right的值为布尔值,分别代表设置绘图区四个边框线上的的刻度线是否显示

3.结果

6密度图

1.代码

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import pandas as pd
import numpy as np
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']#设置字体
plt.rcParams['axes.unicode_minus']=False #字符显示
titanic=pd.read_csv("birth-rate.csv")
titanic.dropna(subset=['2008'],inplace=True)
#处理缺失值,删除含有缺失2008中的值
kde=mlab.GaussianKDE(titanic['2008'])
x2 = np.linspace(titanic['2008'].min(),titanic['2008'].max(),1000)
line2 = plt.plot(x2,kde(x2),'g-',linewidth = 2)
plt.xlabel("出生率(%)")
plt.ylabel("频率")
plt.title('各国出生率的密度分布图')
plt.show()

2.分析

3.结果

7密度图与直方图结合

1.代码

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
#设置字体 显示字符 读取数据 删除’2008‘数据中的缺失值 使用ggplot绘图方式
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
titanic = pd.read_csv('birth-rate.csv')
titanic.dropna(subset=['2008'],inplace=True)
plt.style.use('ggplot')
#直方图
plt.hist(titanic['2008'],bins=np.arange(titanic['2008'].min(),titanic['2008'].max(),3),density=True,color='steelblue',edgecolor='k')
plt.title('2008年出生直方图和密度图')
plt.xlabel('出生率')
plt.ylabel('频率')
plt.tick_params(top=False,right=False)
#密度图
kde = mlab.GaussianKDE(titanic['2008'])
x2 = np.linspace(titanic['2008'].min(),titanic['2008'].max(),1000)
line2 = plt.plot(x2,kde(x2),'g-',linewidth = 2)
plt.show()

2.分析

3.结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第五章可视化 的相关文章

随机推荐

  • Chrome OS 将实现在虚拟机上运行 Linux 应用程序

    Chromebook 用户很快就可以通过更简单的方式在 Google Chrome OS 硬件上运行 Linux 发行版和应用程序 据外媒 Chrome Unboxed 报道 Chromium Gerrit 上有一个新合并的提交 描述了 在
  • vulnhub-KIOPTRIX: LEVEL 1.2 (#3)-KioptrixVM3靶场

    以下演示均在测试环境进行 遵守法律 维护网络安全 靶场链接 Kioptrix Level 1 2 3 VulnHub 靶场为单层网络 下载解压之后 直接设置网络为nat模式 kali攻击机同样设置为nat 保持两者在同一个网段即可 本次没有
  • 将YOLOV5数据集不同类别分开的Python脚本

    将YOLOV5数据集不同类别分开的Python脚本 import os import shutil labelall path r C Users 1 Desktop test labels all 所有标签存放的路径 imgall pat
  • 3种等待方式,让你学会Selenium设置自动化等待测试脚本!

    一 Selenium脚本为什么要设置等待方式 即他的应用背景到底是什么 应用Selenium时 浏览器加载过程中无法立即显示对应的页面元素从而无法进行元素操作 需设置一定的等待时间去等待元素的出现 简单来说 就是设置一个等待时间让页面元素加
  • JUC并发编程之ReentrantLock

    1 非公平锁实现原理 加锁解锁流程 构造器默认实现的是非公平锁 public ReentrantLock sync new NonfairSync NonfairSync 继承 Sync Sync 继承 AbstractQueuedSync
  • 从 0 开始学 Python 自动化测试开发(二):环境搭建

    本文是 从 0 开始学 Python 自动化测试开发 专题系列文章第二篇 环境搭建篇 适合零基础入门的同学 没有阅读过上一篇的同学 请戳蓝色字体阅读 作者方程老师 是前某跨国通信公司高级测试经理 目前为某互联网名企资深测试技术专家 也是霍格
  • Win11家庭版完美解决旧版exe的DPI显示高清修复

    由于Win11家庭版的一些限制 不能直接按Win R搜索打开gpedit msc来执行相关操作 修改注册表对普通用户又太危险 因此本文介绍了一种更简便的操作方法 来设置旧程序对现在电脑的高DPI的适配 一共12个步骤 步骤1 打开 开始 搜
  • flutter 超详细的sqflite数据库使用详解

    前言 数据持久化存储是app开发过程中比较常见的需求 对于简单的配置数据我们可以通过SharedPreference来实现 但是如果是类似用户列表 商品列表等的大量复杂数据 再使用SharedPreference来存储就不合适了 本篇我们就
  • curl命令多行执行

    window环境执行 分割符是 curl http surge jdfmgt com core r coreAutoInitiateMain testAddData X POST d objectCreateCount 1 typeCode
  • leecode151 反转字符串中的单词(附有手写思路)

    丑陋的思路 StringJoiner版本 前言 刚开始我是用StringJoiner写的 因为我看到这个每个元素之间有一个固定的空格我就想着能够直接用这个StringJoiner来进行书写 但是我提交的时候说这个StringJoiner无法
  • leetcode分类刷题:哈希表(Hash Table)(三、循环存在问题)

    1 当需要快速判断某元素是否出现在序列中时 就要用到哈希表了 2 本文针对的总结题型为给定的序列或需要构造的序列中是否存在循环 与 160 相交链表 141 环形链表 142 环形链表 II的题型一样 202 快乐数 这道题还考察如何对正整
  • AndroidStudio内各个模拟器的安装位置

    As中 下载的本地模拟器的位置位于 android avd目录下 当该目录被删除后 打开AndroidStudio的AVD 会发现所有的下载过的模拟器都没有了
  • 【2021-04-07华为机试】第二题:各任务执行完毕需要的时间

    题目 给定N个任务 1 lt N lt 100 任务编号从0开始顺序累加 这N个任务在系统中排队顺序执行 每个任务的自身执行时间为非负整数 依次为t1 t2 tn 部分任务之间存在依赖关系的 某任务所依赖的任务如果没有执行 则该任务需要重回
  • IDEA 中设置自动补全方法

    最近转用 IDEA 但习惯于 Eclipse 的快捷键和快捷输入 以下是在 IDEA 中增添快捷键和快捷输入的方法 1 File Settings 2 Editor Live Templates Add Template Group gt
  • Ant Design Pro新增页面步骤

    新增页面步骤 根据页面结构规范创建页面文件后 接着在项目根目录寻找config文件夹下的routes js中添加该页面项的路由配置 如创建子路由则在父路由下定义routes属性 值为一个数组 数组中为该路由的子路由路由配置项 如下图 exp
  • 微信隐藏功能系列3:微信关闭朋友圈广告推送

    我们使用微信好多年了 这个工具不仅仅在社交上为我们带来许多好处 工作 消费中也是给我们带来不少方便之处 大家对微信隐藏功能了解多少 本期分享 微信关闭朋友圈广告推送 虽然微信为我们带来许多方便 但令人不适的东西也是有的 广告就是其中之一 特
  • python如何创建二维数组

    关于python中的二维数组 主要有list和numpy array两种 好吧 其实还有matrices 但它必须是2维的 而numpy arrays ndarrays 可以是多维的 两者可以相互转化 下边是两者区别 数组list gt g
  • linux va_start 编译,如何把unix 下的c程序移植到suse linux下,编译出错?

    FILE gfp out stdout 第45行 报 err c 45 error initializer element is not constant include int err set info char ps error typ
  • c++:STL容器及其接口(string、vector、deque、stack、queue、list、set/multiset、map/multimap)

    STL Standard Template Library 标准模板库 目录 一 STL 六大组件简介 二 string容器 2 1 string容器基本概念 2 2 string 构造函数 2 3 string基本赋值操作 2 4 str
  • 第五章可视化

    1散点图 1 代码 A 未处理异常值 import ggplot as gp import pandas as pd import numpy as np crime pd read csv crimeRatesByState2005 cs