python画图程序没有图_python画图 - v0
学了这么多年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相关推荐
- python画图程序有图-python画图程序
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天做的是用python实现画图,画出你想要的图案,只要你的想象力足够丰富,以及 ...
- python画图程序没有图_解决python中使用plot画图,图不显示的问题
解决python中使用plot画图,图不显示的问题 对以下数据画图结果图不显示,修改过程如下 df3 = {'chinese':109, 'American':88, 'German': 66, 'K ...
- python怎么变成动图_python可以做动图吗
ImageMagick 是一套功能强大.稳定而且开源的工具集和开发包,可以用来读.写和处理超过200种基本格式的图片文件,包括PNG,JPEG,GIF,HEIC,TIFF,DPX,EXR,WebP,P ...
- python画k线图_python画k线图
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import datetime import pandas_datareader ...
- python画k线图_Python绘制K线图
不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典.很重要的工具.在K线图中,它会绘制每天的最高价.最低价.开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助. 一 ...
- python画图程序有图-Python海龟画图工具绘制叮当猫程序
使用海龟画图工具,画一个叮当猫. 先学习几个基本函数: import turtle;#引入海龟工具模块 t=turtle.Pen()#创建海龟画笔 t.fillcolor("blue&quo ...
- python画图程序实验报告_Python绘图简明教程
前言 本文纯科普向. 主要介绍一下Python上最好用的2D图形绘制库matplotlib的安装以及一些基础操作. 选择Python是因为其强大的第三方库和优秀便捷的语法,并且能方便地对数据进行后续处 ...
- python画图程序有图-python-1 简单的turtle画图程序
python turtle的一些操作 画笔控制函数 penup() /抬起画笔 pendown() /落下画笔(开始有印记) pensize(width) /画笔的粗细 speed() /画笔速度,范 ...
- python如何画动图_python之matplotlib画图教程(3)--如何画动图
上一篇我们说好了,要给出整套源码,为了不占正文的篇幅,我会在文末贴出.放心,不是让你去关注公众号.因为,我并没有.. 之前我们聊了怎么画圆以及直线,我还是建议你能抽出10分钟把前面的文章先看了,因为这 ...
最新文章
- 分布式锁的Redis实现
- Nginx的proxy_cache缓存功能
- 学习笔记Hadoop(五)—— Hadoop集群的安装与部署(2)—— Hadoop集群部署模式、配置固定IP
- vs cmake opencv 远程 ubuntu 开发时:vs代码出现紫色波浪线且报错怎么办?
- 机器学习导论(张志华):条件期望
- centos6.2 64位LNMP(linux+nginx+mysql+php)实现
- 递归和迭代路由_静态路由在以太网接口中的不同书写会导致路由器怎样的操作结果?...
- FlexPod上安装vSphere 5.5配置中的排错(1)
- html 转换xslt,XSLT xsl:template 元素
- linux eclipse svn插件安装,Linux上Eclipse安装SVN插件和安装JavaHL
- eslint airbnb 不允许尾随逗号
- 关于开源中国手机App的说明
- 7-27 冒泡法排序 (20 分)
- 防止按钮连续重复点击
- Bootloader之BareBox 之路(1)--安装
- asp.net下Response.ContentType类型汇总
- TextureMerger1.6.6 一:Egret MovieClip的制作和使用
- Atitit vue绑定json列表数据到表格最小简化培训版本 目录 1.1. 引入类库jq与vue	1 1.2. 获取ajax数据并推送到vue的内部自定义变量	1 1.3. 建立表格与vue变量
- Angular2.x
- [XJTUSE编译原理]第四章 语法分析——自上而下分析
热门文章
- 四种为HttpClient添加默认请求报头的解决方案
- 【翻译】无需安装Python,就可以在.NET里调用Python库
- .net core百万设备连接服务和硬件需求测试
- aelf帮助C#工程师10分钟零门槛搭建DAPP私有链开发环境
- 使用ASP.NET Core开发GraphQL服务器 -- 极简预备知识(上)
- EFCore Lazy Loading + Inheritance = 干净的数据表 (二)
- 程序员修仙之路-数据结构之 CXO让我做一个计算器
- 用quot;hosting.jsonquot;配置ASP.NET Core站点的Hosting环境
- 使用Filezilla 与 linux远程服务器传输文件时,设置默认打开编辑器
- C# 的扩展方法在 LINQ 中实现数组排序