热门标签 | 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)

推荐阅读
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
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社区 版权所有