学了这么多年python了,还一直没有系统地了解过python的画图功能。

每次都是现学现用,但是某些比较紧急的场合,往往就会比较耗时又耗力,因为不成体系,还经常会忘记已经吸纳的新知识。

所以,我决定把这块的画图功能系统的学习一下,进行知识储备。

Python的pyplot模块绘制图表的基本操作。

=======================================================

一个简单的二维折线图:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]

y = [1.2, 2.5, 4.5, 7.3]

# plot函数作图

plt.plot(x, y)

plt.savefig("test.png", dpi=120)

# show函数展示出这个图,如果没有这行代码,则程序完成绘图,但看不到

plt.show()

运行后的效果是这样的,从数值对应上,横轴应该是x轴,纵轴应该是y轴。

但是,对应图与代码,另外疑问的是,为什么x轴给出的是整数,在绘制时却用了浮点?而又为什么y轴给出的是浮点数,在绘制时却用的是整数呢?

----------------------------------------------------------------------------------------------

另一个点是:

show()函数在通常的运行情况下,将会阻塞程序的运行,直到用户关闭绘图窗口。换句话说,在关闭show()函数弹出的图像窗口前,show()函数后面的代码不会运行,直到用户关闭图像窗口,才会继续。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

我测试了普通的print()之后,发现并没有阻塞。。。

但是呢,当我在调用plt.savefig()将当前的Figure对象保存成图像文件时,

如果plt.savefig()代码放在了plt.show()之后,那我本地保存的图像就是一张空白图,不符合预期;

但如果plt.savefig()代码放在了plt.show()之前,则可以成功实现保存。

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

虽然问题不大,但也让我产生疑问:到底是有阻塞还是没有阻塞呢?如果有,阻塞什么,而又不阻塞什么呢?

=======================================================

不同风格的线条:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]

y = [1.2, 2.5, 4.5, 7.3]

#线条颜色、线条样式、突出(marker)每个记录的点、线条粗细

plt.plot(x, y, color="r", linestyle="--", marker="*", linewidth=1.0)

plt.show()

运行后的效果:

---------------------------------------------------------------------------------------------

线条风格(linstyle):

supported values are '-', '--', '-.', ':', 'None', ' ', '', 'solid', 'dashed', 'dashdot', 'dotted'

-----------------------------------------------------------------------------------------------

线条颜色(color):

-----------------------------------------------------------------------------------------------

线条标记(marker):

======================================================

坐标轴控制

-绘图范围:

import matplotlib.pyplot as plt

import numpy as np

#x 的取值范围

x = np.arange(-5, 5, 0.02)

y = np.sin(x)

#控制图像的绘图范围

#plt.axis([x_min, x_max, y_min, y_max])

plt.axis([-np.pi, np.pi, -2, 2])

plt.plot(x, y, color="r", linestyle="-", linewidth=1)

plt.show()

运行效果如下:

值得注意的一个点:

虽然x的取值范围在[−5,5],但是绘图时,只是展示了[−π,π]之间的函数图。

引出一个可以控制图像范围的函数:

plt.axis([x_min, x_max, y_min, y_max])

如果只是单独想要控制x轴或者y轴的取值,则可以用plt.xlim(x_min, x_max)和plt.ylim(y_min, y_max),用法与plt.axis()类似。

----------------------------------------------------------------------------------------------

-标题和间隔:

import matplotlib.pyplot as plt

import numpy as np

import math

x = np.arange(-2 * math.pi, 2 * math.pi, 0.02)

y = np.sin(x)

plt.axis([-10, 10, -2, 2])

plt.xticks([i * np.pi/2 for i in range(-4, 5)], [str(i * 0.5) + "$\pi$" for i in range(-4, 5)])

plt.yticks([i * 0.5 for i in range(-4, 5)])

plt.xlabel("x")

plt.ylabel("y")

plt.plot(x, y, color="r", linestyle="-", linewidth=1)

plt.show()

运行效果如下:

纯粹知识的学习记录:

函数plt.xlabel()和plt.xlabel()用来实现对x轴和y轴添加标题。

函数plt.xticks()和plt.yticks()用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定。用法上,函数的输入是两个列表,第一个表示取值,第二个表示标记。当然如果你的标记就是取值本身,则第二个列表可以忽略。(支持latex公式表达)

=======================================================

PS:感谢参考文章的作者,从细节、小处一步步向前推进,能够很好的帮助我建立知识体系。

不过,一如既往地,我的问题真多,虽然问题不大,但是拥有自己的思考分析,我认为是应该一直坚持的事情。

毕竟自己小菜鸡,一直在参考文章进行学习,期待学习后期可以有自己完全独立、不依赖参考文章的成形文字。

python画图程序没有图_python画图 - v0相关推荐

  1. python画图程序有图-python画图程序

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天做的是用python实现画图,画出你想要的图案,只要你的想象力足够丰富,以及 ...

  2. python画图程序没有图_解决python中使用plot画图,图不显示的问题

    解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...

  3. python怎么变成动图_python可以做动图吗

    ImageMagick 是一套功能强大.稳定而且开源的工具集和开发包,可以用来读.写和处理超过200种基本格式的图片文件,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,P ...

  4. python画k线图_python画k线图

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import datetime import pandas_datareader ...

  5. python画k线图_Python绘制K线图

    不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典.很重要的工具.在K线图中,它会绘制每天的最高价.最低价.开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助. 一 ...

  6. python画图程序有图-Python海龟画图工具绘制叮当猫程序

    使用海龟画图工具,画一个叮当猫. 先学习几个基本函数: import turtle;#引入海龟工具模块 t=turtle.Pen()#创建海龟画笔 t.fillcolor("blue&quo ...

  7. python画图程序实验报告_Python绘图简明教程

    前言 本文纯科普向. 主要介绍一下Python上最好用的2D图形绘制库matplotlib的安装以及一些基础操作. 选择Python是因为其强大的第三方库和优秀便捷的语法,并且能方便地对数据进行后续处 ...

  8. python画图程序有图-python-1 简单的turtle画图程序

    python turtle的一些操作 画笔控制函数 penup() /抬起画笔 pendown() /落下画笔(开始有印记) pensize(width) /画笔的粗细 speed() /画笔速度,范 ...

  9. python如何画动图_python之matplotlib画图教程(3)--如何画动图

    上一篇我们说好了,要给出整套源码,为了不占正文的篇幅,我会在文末贴出.放心,不是让你去关注公众号.因为,我并没有.. 之前我们聊了怎么画圆以及直线,我还是建议你能抽出10分钟把前面的文章先看了,因为这 ...

最新文章

  1. 分布式锁的Redis实现
  2. Nginx的proxy_cache缓存功能
  3. 学习笔记Hadoop(五)—— Hadoop集群的安装与部署(2)—— Hadoop集群部署模式、配置固定IP
  4. vs cmake opencv 远程 ubuntu 开发时:vs代码出现紫色波浪线且报错怎么办?
  5. 机器学习导论(张志华):条件期望
  6. centos6.2 64位LNMP(linux+nginx+mysql+php)实现
  7. 递归和迭代路由_静态路由在以太网接口中的不同书写会导致路由器怎样的操作结果?...
  8. FlexPod上安装vSphere 5.5配置中的排错(1)
  9. html 转换xslt,XSLT xsl:template 元素
  10. linux eclipse svn插件安装,Linux上Eclipse安装SVN插件和安装JavaHL
  11. eslint airbnb 不允许尾随逗号
  12. 关于开源中国手机App的说明
  13. 7-27 冒泡法排序 (20 分)
  14. 防止按钮连续重复点击
  15. Bootloader之BareBox 之路(1)--安装
  16. asp.net下Response.ContentType类型汇总
  17. TextureMerger1.6.6 一:Egret MovieClip的制作和使用
  18. Atitit vue绑定json列表数据到表格最小简化培训版本 目录 1.1. 引入类库jq与vue 1 1.2. 获取ajax数据并推送到vue的内部自定义变量 1 1.3. 建立表格与vue变量
  19. Angular2.x
  20. [XJTUSE编译原理]第四章 语法分析——自上而下分析

热门文章

  1. 四种为HttpClient添加默认请求报头的解决方案
  2. 【翻译】无需安装Python,就可以在.NET里调用Python库
  3. .net core百万设备连接服务和硬件需求测试
  4. aelf帮助C#工程师10分钟零门槛搭建DAPP私有链开发环境
  5. 使用ASP.NET Core开发GraphQL服务器 -- 极简预备知识(上)
  6. EFCore Lazy Loading + Inheritance = 干净的数据表 (二)
  7. 程序员修仙之路-数据结构之 CXO让我做一个计算器
  8. 用quot;hosting.jsonquot;配置ASP.NET Core站点的Hosting环境
  9. 使用Filezilla 与 linux远程服务器传输文件时,设置默认打开编辑器
  10. C# 的扩展方法在 LINQ 中实现数组排序