热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2022年,把Python学得跟Java一样熟练——04matplotlib绘制概率图

背景《贝叶斯方法》里面有一个案例“图书管理员还是农民”:丹尼尔卡尼曼在《思考,快与慢》中说,史蒂芬被描述为一个害羞的人,他

背景

《贝叶斯方法》里面有一个案例“图书管理员还是农民”:

丹尼尔卡尼曼在《思考,快与慢》中说,史蒂芬被描述为一个害羞的人,他乐于助人,但是他对其他人不太关注。他非常乐于见到事情处于合理的顺序,并对他的工作非常细心。你认为史蒂芬是一个图书管理员还是一个农民呢?

从上面的描述来看,大多数人都会认为史蒂芬看上去更像一个图书管理员,但是这里却忽视了一个关于图书管理员和农民的事实:男性图书管理员的人数只有男性农民的 1/20 。

所以统计学的角度来看,他更有可能是一个农民。本文整理该案例绘制的条形图,主要在于了解 matplotlib 的简单用法。

贝叶斯定理推断

根据贝叶斯定理推断,史蒂芬是图书管理员的先验概率和后验概率分别是:

  1. 先验概率:1/21 = 0.047,什么都不知道的情况下的概率。
  2. 后验概率:0.087,即知道史蒂芬具有一些乐于助人、细心的特点后,判断他是图书管理员的概率是 0.087,比先验概率大了一点点。

Python 条形图展示

在 PyCharm 中编码绘制两个概率的条形图:

from IPython.core.pylabtools import figsize
import numpy as np
from matplotlib import pyplot as plt# 设置参数
figsize(12.5, 4)
plt.rcParams['savefig.dpi'] = 300
plt.rcParams['figure.dpi'] = 300#设置参数
colors = ['#348ABD','#A60628']
prior = [1/21. , 20/21.]
posterior = [0.087, 1-0.087]#绘制先验概率图:
plt.bar([0, .7], prior, alpha=0.70, width=0.25,color=colors[0], label='prior distribution',lw="3",edgecolor=colors[0])#绘制后验概率图
plt.bar([0+0.25, .7+0.25],posterior, alpha=0.7,width=0.25,color=colors[1],label='posterior distribution',lw="3",edgecolor=colors[1])#设置 X 轴的位置和名称
plt.xticks([0.20, 0.95],["Librarian","Farmer"])#设置图形标题
plt.title("Prior and posterior probabilities of Steven's occupation")#设置纵轴名称
plt.ylabel("Probability")# 设置图例位置
plt.legend(loc="upper left")#展示该图,没有这句话,就没有图
plt.show()

编码注意事项,依赖模块安装,在 Pycharm 的控制台执行:

  1. 安装 pip3 install IPython 模块。
  2. 安装 pip3 install matplotlib 模块。

运行结果

原样敲的代码运行出的图形特别大,占满了电脑屏幕,就是这个图:
在这里插入图片描述
这个图可以看到,史蒂芬是农民的概率是远远高于图书管理员的概率的。

编程启示录

Pycharm 安装后自带了一个 venv 的目录,下面有 pyhton3.9 的环境,所以我想默认的开发都是以自带的环境为基础的。

本例中安装依赖模块都是在当前项目下执行的,看安装结果也是用的“venv/bin/python -m pip “ 该环境的 pip3 安装的依赖模块。

那么如果用本机的 pip3 安装的模块,在 Pycharm 环境下编码能引用到吗?反之呢,刚刚安装的两个模块,直接通过命令行能访问到么?

我不记得本机 Python 环境有没有安装过这个 matplotlib ,但是通过控制台执行能导入成功:
在这里插入图片描述


推荐阅读
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 零基础用Python打造Android字符串资源翻译器(五):增加图形化界面
    目录 ... [详细]
  • 【爬虫训练场】:分页爬虫案例设计Demo,Python Flask与MySQL的完美连接
    网站类应用,一定离不开MySQL,所以本案例将带着大家学习一下,通过Flask调用MySQL数据,并实现分页呈现。类被称作蓝图,它是一个存储操作方法的容器,Flask可以通过Blu ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
author-avatar
mobiledu2502857683
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有