首页 > 其他分享 >matplotlib -- 绘图操作 -- 数据分析三剑客

matplotlib -- 绘图操作 -- 数据分析三剑客

时间:2023-10-02 13:56:33浏览次数:46  
标签:plot arr plt figure -- Text pie matplotlib 三剑客

博客地址:https://www.cnblogs.com/zylyehuo/

开发环境

  • anaconda
    • 集成环境:集成好了数据分析和机器学习中所需要的全部环境
    • 安装目录不可以有中文和特殊符号
  • jupyter
    • anaconda提供的一个基于浏览器的可视化开发工具
import matplotlib.pyplot as plt
import numpy as np

plt.plot()绘制线性图

  • 绘制单条线形图
  • 绘制多条线形图
  • 设置坐标系的比例plt.figure(figsize=(a,b))
  • 设置图例legend()
  • 设置轴的标识
  • 图例保存
    • fig = plt.figure()
    • plt.plot(x,y)
    • figure.savefig()
  • 曲线的样式和风格

绘制单条线形图

x = np.array([1,2,3,4,5])
y = x + 3
​
plt.plot(x,y)

[<matplotlib.lines.Line2D at 0x111dc3f28>]

绘制多条线形图

方式一

plt.plot(x,y)
plt.plot(x+1,y-2)

[<matplotlib.lines.Line2D at 0x111e38b00>]

方式二

plt.plot(x,y,x+1,y-2)

[<matplotlib.lines.Line2D at 0x111f80a20>,
<matplotlib.lines.Line2D at 0x111f80be0>]

设置坐标系的比例plt.figure(figsize=(a,b))

plt.figure(figsize=(5,9))  # 放置在绘图的plot方法之前
plt.plot(x,y)

[<matplotlib.lines.Line2D at 0x1120aebe0>]

设置图例legend()

plt.plot(x,y,label='x,y')
plt.plot(x+1,y-2,label='x+1,y-2')
plt.legend()  # 图例生效

<matplotlib.legend.Legend at 0x11693a5f8>

设置轴的标识

plt.plot(x,y)
plt.xlabel('temp')
plt.ylabel('dist')
plt.title('dist&temp')

Text(0.5,1,'dist&temp')

图例保存

  • fig = plt.figure()
  • plt.plot(x,y)
  • figure.savefig()
fig = plt.figure()  # 该对象的创建一定要放置在plot绘图之前
plt.plot(x,y,label='x,y')
fig.savefig('./123.png')

曲线的样式和风格

设置颜色和透明度

plt.plot(x,y,c='red',alpha=0.5)
[<matplotlib.lines.Line2D at 0x1170d2ef0>]

柱状图

  • plt.bar()
    • 参数
      • 第一个参数是索引
      • 第二个参数是数据值
      • 第三个参数是条形的宽度
plt.bar(x,y)

<BarContainer object of 5 artists>

直方图

  • 是一个特殊的柱状图,又叫做密度图
  • plt.hist()的参数
    • bins
      • 可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10
    • normed
      • 如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False
    • color
      • 指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
    • orientation
      • 通过设置orientation为horizontal创建水平直方图。默认值为vertical
data = [1,1,2,2,2,3,4,5,6,6,6,6,6,6,7,8,9,0]
plt.hist(data,bins=20)

(array([1., 0., 2., 0., 3., 0., 1., 0., 1., 0., 0., 1., 0., 6., 0., 1., 0.,
1., 0., 1.]),
array([0. , 0.45, 0.9 , 1.35, 1.8 , 2.25, 2.7 , 3.15, 3.6 , 4.05, 4.5 ,
4.95, 5.4 , 5.85, 6.3 , 6.75, 7.2 , 7.65, 8.1 , 8.55, 9. ]),
<a list of 20 Patch objects>)

饼图

  • pie(),饼图也只有一个参数x
  • 饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小
arr=[11,22,31,15]
plt.pie(arr)

([<matplotlib.patches.Wedge at 0x1178be1d0>,
<matplotlib.patches.Wedge at 0x1178be6a0>,
<matplotlib.patches.Wedge at 0x1178beb70>,
<matplotlib.patches.Wedge at 0x1178c60f0>],
[Text(0.996424,0.465981,''),
Text(-0.195798,1.08243,''),
Text(-0.830021,-0.721848,''),
Text(0.910034,-0.61793,'')])

arr=[0.2,0.3,0.1]
plt.pie(arr)

([<matplotlib.patches.Wedge at 0x1177d0e80>,
<matplotlib.patches.Wedge at 0x1177da390>,
<matplotlib.patches.Wedge at 0x1177da8d0>],
[Text(0.889919,0.646564,''),
Text(-0.646564,0.889919,''),
Text(-1.04616,-0.339919,'')])

arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'])

([<matplotlib.patches.Wedge at 0x11794aa90>,
<matplotlib.patches.Wedge at 0x11794af60>,
<matplotlib.patches.Wedge at 0x1179544e0>,
<matplotlib.patches.Wedge at 0x117954a20>],
[Text(0.996424,0.465981,'a'),
Text(-0.195798,1.08243,'b'),
Text(-0.830021,-0.721848,'c'),
Text(0.910034,-0.61793,'d')])

arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3)

([<matplotlib.patches.Wedge at 0x1179e2278>,
<matplotlib.patches.Wedge at 0x1179e2748>,
<matplotlib.patches.Wedge at 0x1179e2c18>,
<matplotlib.patches.Wedge at 0x1179eb198>],
[Text(0.271752,0.127086,'a'),
Text(-0.0533994,0.295209,'b'),
Text(-0.226369,-0.196868,'c'),
Text(0.248191,-0.168526,'d')])

arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,autopct='%.6f%%')

([<matplotlib.patches.Wedge at 0x117a709e8>,
<matplotlib.patches.Wedge at 0x117a7a128>,
<matplotlib.patches.Wedge at 0x117a7a898>,
<matplotlib.patches.Wedge at 0x117a83048>],
[Text(0.271752,0.127086,'a'),
Text(-0.0533994,0.295209,'b'),
Text(-0.226369,-0.196868,'c'),
Text(0.248191,-0.168526,'d')],
[Text(0.543504,0.254171,'13.924050%'),
Text(-0.106799,0.590419,'27.848101%'),
Text(-0.452739,-0.393735,'39.240506%'),
Text(0.496382,-0.337053,'18.987341%')])

arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,shadow=True,explode=[0.2,0.3,0.2,0.4])

([<matplotlib.patches.Wedge at 0x117ab2390>,
<matplotlib.patches.Wedge at 0x117ab2b38>,
<matplotlib.patches.Wedge at 0x117abb390>,
<matplotlib.patches.Wedge at 0x117abbba8>],
[Text(0.45292,0.21181,'a'),
Text(-0.106799,0.590419,'b'),
Text(-0.377282,-0.328113,'c'),
Text(0.579113,-0.393228,'d')])

散点图

  • scatter()
  • 因变量随自变量而变化的大致趋势
x = np.array([1,3,5,7,9])
y = x ** 2 - 3

plt.scatter(x,y)

<matplotlib.collections.PathCollection at 0x117c1d780>

Type Markdown and LaTeX:

标签:plot,arr,plt,figure,--,Text,pie,matplotlib,三剑客
From: https://www.cnblogs.com/zylyehuo/p/17739893.html

相关文章

  • [题解]AT_abc240_f [ABC240F] Sum Sum Max
    思路题目要求的是\(\max_{a=1}^{n}\{\sum_{i=1}^{a}\sum_{j=1}^{a}{A_j}\}\),所以我们将\(\sum_{i=1}^{a}\sum_{j=1}^{a}{A_j}\)化简一下,得:\[i\timesA_1+(i-1)\timesA_2+\dots+1\timesA_x\]在\(a\)每增加\(1\)时,这个和\(s\)将会变为\(s+......
  • [C语言]动态内存分配遇上函数-经典错误纠错
    题目来自nice2016校招笔试题直接完整代码#include<stdio.h>#include<stdlib.h>#include<string.h>voidGetMemory(char*p)//申请内存{ p=(char*)malloc(100);}voidTest(){ char*str=NULL; GetMemory(str); strcpy(str,"helloworld")......
  • 初识c++
    C++之父-本贾尼·斯特劳斯特卢普示例代码#include<iostream>//C++标准输入输出流的头文件等同于C语言stdio.husingnamespacestd;//为了减少命名冲突intmain(intargc,charconst*argv[]){ cout<<"helloworldc++"<<endl; return0;}作用域控制符......
  • 2D阴影效果
    效果:实现类似手电筒的光照,有阴影部分也有光照部分,可以用在2D游戏里。本篇博客将用绘制多边形和渐变圆的方法实现上图效果,语言是C++配Ege。方法一:光线投射计算量巨大,还会有类似摩尔纹的效果,这里就不实现了。方法二:绘制光线区域可以参考这篇博客,大致思路是对于每个顶点向他发......
  • 事业
    1、提高自我认知2、不要被消费理念欺骗3、要选择一项可长远发展的事业,可以一直坚持下去可以看下未来世界的发展,从中找到你的事业中心。如果想要有稳定的收入,那就需要你提高自我认知,去多学习,不要被超前消费观念所影响,然后找到一个可以长期发展的事业。这样下来,你才能够让自己......
  • C#设计模式19——装饰器模式的写法
    装饰器模式(DecoratorPattern)是一种结构型设计模式,它允许你动态地给一个对象添加一些额外的职责,而不需要修改这个对象的代码。What(什么)装饰器模式是一种结构型设计模式,它允许你动态地给一个对象添加一些额外的职责,而不需要修改这个对象的代码。在装饰器模式中,你可以定义一个装......
  • destoon运行流程二次开发必看
    <?php代码首先包含common.inc.php文件在common.inc.php文件中,首先定义常量。define('IN_DESTOON',true);define('IN_ADMIN',defined('DT_ADMIN')?true:false);define('DT_ROOT',str_replace("\",'/',dirname(__F......
  • [题解]AT_abc245_f [ABC245F] Endless Walk
    思路首先我们可以发现,在任意一个节点数量大于\(1\)的强连通分量中的点都满足条件。所以,我们可以对这张图跑一边TarJan。但是这样是错的,因为我们还需要考虑节点数量为\(1\)的强连通分量。如果这种连通分量能够到达任意一个节点数量大于\(1\)的强连通分量,那么,这个连通分......
  • destoon短信接口修改方法
    destoon是很优秀的B2B行业站程序。程序模块化开发契合度很高,二次开发起来也很顺畅。数据缓存,权限分配,SEO功能方面都不错。但是在使用这套程序的时候,常常要用到发送短信的功能,而destoon本身只接入了自己的短信接口。一些初接触destoon的开发者不知道如何修改。所以铁牛特此写个文......
  • Destoon模板存放及调用规则
    一、模板存放及调用规则模板存放于系统template目录,template目录下的一个目录例如template/default/即为一套模板模板文件以.htm为扩展名,可直接存放于模板目录例如template/default/index.htm也可以存放于模板目录的子目录里例如template/default/member/index.htm在PHP......