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

python绘图总结

文章目录seaborn库matplotlib库pydotplusseaborn库是一个基于matplotlib的可视化库1、将矩阵绘制成混淆矩阵(热点图ÿ


文章目录

  • seaborn库
  • matplotlib库
  • pydotplus


seaborn库

是一个基于matplotlib的可视化库

1、将矩阵绘制成混淆矩阵(热点图):

import matplotlib.pyplot as plt
import seaborn
#将矩阵绘制成热点图
seaborn.heatmap(mat)
#显示当前图形,否则会在最后才显示
plt.show()

示例:绘制一个二分类的混淆矩阵:

import matplotlib.pyplot as plt
import seaborn
import numpy
import random
from sklearn.metrics import confusion_matrixtest = []
predict = []
#随机生成1000个实际类别和预测类别
for i in range(1000): test.append(random.randint(0, 1))predict.append(random.randint(0, 1))
#生成混淆矩阵
mat = confusion_matrix(test, predict)
#将矩阵绘制成热点图
seaborn.heatmap(mat)
#显示当前图形,否则会在最后才显示
plt.show()

效果:
在这里插入图片描述

2、seaborn可以导入数据集(需要联网)

详细:https://blog.csdn.net/weixin_41571493/article/details/82528742?utm_source=blogxgwz3

import seaborn
#调用iris数据集
iris = seaborn.load_dataset('iris')
print(iris)

效果:

sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
.. ... ... ... ... ...
145 6.7 3.0 5.2 2.3 virginica
146 6.3 2.5 5.0 1.9 virginica
147 6.5 3.0 5.2 2.0 virginica
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica[150 rows x 5 columns]

3、利用导入的数据库获取各样本数目和描述性统计指标

import seabornseaborn_iris = seaborn.load_dataset('iris')#获取各类别样本的数目
print(seaborn_iris.groupby('species').size())#打印每个特征的描述性统计指标
print(seaborn_iris.describe())

各类别的数目:

species
setosa 50
versicolor 50
virginica 50
dtype: int64

描述性统计指标:

sepal_length sepal_width petal_length petal_width
count 150.000000 150.000000 150.000000 150.000000
mean 5.843333 3.057333 3.758000 1.199333
std 0.828066 0.435866 1.765298 0.762238
min 4.300000 2.000000 1.000000 0.100000
25% 5.100000 2.800000 1.600000 0.300000
50% 5.800000 3.000000 4.350000 1.300000
75% 6.400000 3.300000 5.100000 1.800000
max 7.900000 4.400000 6.900000 2.500000

4、利用导入的数据集,绘制箱形图

seaborn.boxplot(x = , y = ):规定x轴和y轴

import matplotlib.pyplot as plt
import seaborniris = seaborn.load_dataset('iris')seaborn.boxplot(x = iris["species"], y = iris["sepal_length"])
plt.show()
seaborn.boxplot(x = iris["species"], y = iris["sepal_width"])
plt.show()
seaborn.boxplot(x = iris["species"], y = iris["petal_length"])
plt.show()
seaborn.boxplot(x = iris["species"], y = iris["petal_width"])
plt.show()

效果:
在这里插入图片描述
剩下的三张图类似


matplotlib库

1、matplotlib.pyplot.show():

将绘制的图形显示出来,否则图形会在最后显示

2、绘制散点图

scatter(x = ,y = ,s = ):散点图

绘制一个平方散点图

import matplotlib.pyplot as pltx_value = [1, 2, 3, 4, 5]
y_value = [1, 4, 9, 16, 25]plt.title('Square Number', fontsize = 24)
plt.xlabel('x_value', fontsize = 14)
plt.ylabel('y_value', fontsize = 14)
plt.scatter(x = x_value, y = y_value, s = 200)
plt.show()

效果:
在这里插入图片描述
3、添加误差线

plt.errorbar(K[i], acc[i], fmt=“bo:”, yerr = std[i], capsize = 5)

1)前两个参数表示横坐标和纵坐标

2)fmt表示颜色

3)yerr表示y轴上误差线的长度,相应的也有xerr

4)capsize表示误差线边界横线的长度

详细说明:https://www.jianshu.com/p/5973680a1542

示例:给对应的点添加标准差

#添加误差线(即标准差)
for i in range(len(K)):plt.errorbar(K[i], acc[i], fmt="bo:", yerr = std[i], capsize = 5)
#添加 K 值和对应的正确率
plt.plot(K, acc)
#添加网格
plt.grid(linestyle=':')
#x轴名称
plt.xlabel('K')
#y轴名称
plt.ylabel('Accuracy')
#绘制表格
plt.show()

效果:
在这里插入图片描述
4、生成空间分类图

我知道的两种绘图方式:pcolormesh、scatter

前者的运行速度比后者要快很多

下面代码只是绘图的部分,如果运行并不能实现下图的效果

from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt#特征空间的颜色映射表
color_map = ListedColormap(['#AAAAFF', '#AAFFAA', '#FFAAAA'])
#样本集的各种类别代表的颜色
color = ['blue', 'green', 'red']
#对原始空间进行上色
plt.pcolormesh(X, Y, Z, cmap = color_map)#对原始样本集进行上色
for i in range(len(iris.data)):plt.scatter(iris.data[i][0], iris.data[i][1], c = color[y[i]], s = 10)
#绘图
plt.show()

效果:
在这里插入图片描述


pydotplus

基于鸢尾花数据集生成决策树的可视化

详细说明:https://blog.csdn.net/luanpeng825485697/article/details/78965390

from sklearn.externals.six import StringIO
import pydotplus
from sklearn import tree
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'def visual(index):dot_data = StringIO()#类别名称target_name = ['setosa', 'versicolor', 'virginica']#特征名称attr_names = ['sepal_length (cm)', 'sepal_width (cm)']#决策树可视化函数tree.export_graphviz(clf, out_file=dot_data,feature_names=attr_names,class_names=target_name,filled=True,rounded=True,special_characters=True)graph = pydotplus.graph_from_dot_data(dot_data.getvalue())#pic_name为图片名pic_name = 'tree' + str(index) + '.png'#输出为 png 图片graph.write_png(pic_name)

推荐阅读
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 利用REM实现移动端布局的高效适配技巧
    在移动设备上实现高效布局适配时,使用rem单位已成为一种流行且有效的技术。本文将分享过去一年中使用rem进行布局适配的经验和心得。rem作为一种相对单位,能够根据根元素的字体大小动态调整,从而确保不同屏幕尺寸下的布局一致性。通过合理设置根元素的字体大小,开发者可以轻松实现响应式设计,提高用户体验。此外,文章还将探讨一些常见的问题和解决方案,帮助开发者更好地掌握这一技术。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了如何使用 ECharts 和高德地图实现散点图,并解决视觉映射组件点击后出现的错乱问题。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 深入解析C语言中结构体的内存对齐机制及其优化方法
    为了提高CPU访问效率,C语言中的结构体成员在内存中遵循特定的对齐规则。本文详细解析了这些对齐机制,并探讨了如何通过合理的布局和编译器选项来优化结构体的内存使用,从而提升程序性能。 ... [详细]
  • Unity与MySQL连接过程中出现的新挑战及解决方案探析 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 在安装 iOS 开发所需的 CocoaPods 时,用户可能会遇到多种问题。其中一个常见问题是,在执行 `pod setup` 命令后,系统无法连接到 GitHub 以更新 CocoaPods/Specs 仓库。这可能是由于网络连接不稳定、GitHub 服务器暂时不可用或本地配置错误等原因导致。为解决此问题,建议检查网络连接、确保 GitHub API 限制未被触发,并验证本地配置文件是否正确。 ... [详细]
author-avatar
cc_lzx_530
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有