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

推荐阅读
  • Win10 UWP 开发技巧:利用 XamlTreeDump 获取 XAML 元素树
    本文介绍如何在 Win10 UWP 开发中使用 XamlTreeDump 库来获取和转换 XAML 元素树为 JSON 字符串,这对于 UI 单元测试非常有用。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 本文介绍了一种在Win10 UWP应用中实现根据数值动态改变颜色的控件的方法。通过将椭圆的颜色与整数绑定,并利用值转换器来实现颜色的渐变效果。 ... [详细]
  • 开发笔记:Python:GUI之tkinter学习笔记1控件的介绍及使用
    开发笔记:Python:GUI之tkinter学习笔记1控件的介绍及使用 ... [详细]
  • 本文介绍了如何在VB.NET版机房收费系统中实现数据从DataGridView导出至Excel的功能,包括环境配置、代码实现及常见问题解决方法。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文介绍了如何在Python中使用多元核密度估计(KDE)并将其结果在3D空间中进行可视化。通过利用`scipy`库中的`gaussian_kde`函数和`matplotlib`或`mayavi`库,可以有效地展示数据的密度分布情况。 ... [详细]
  • 本文介绍如何在Windows Forms应用程序中使用C#实现DataGridView的多列排序功能,包括升序和降序排序。 ... [详细]
  • 本文详细介绍了如何在Android应用中使用GridView组件以网格形式展示数据(如文本和图像)。通过行列布局,实现类似矩阵的数据展示效果。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • 本文介绍了如何在MATLAB中实现单变量线性回归,这是基于Coursera上Andrew Ng教授的机器学习课程中的一个实践项目。文章详细讲解了从数据可视化到模型训练的每一个步骤。 ... [详细]
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社区 版权所有