用Python画图今天开始琢磨用Python画图,没使用之前是一脸懵的 , 我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?
搜索之后发现 , 它会弹出一个对话框,然后就开始画了,比如下图
第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库 , 这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了 。
它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:
turtle.forward(200)
turtle.left(170)
第一个命令是移动200个单位并画出来轨迹
第二个命令是画笔顺时针转170度,注意此时并没有移动,只是转角度
然后呢? 循环重复就画出来这个图了
好玩吧 。
有需要仔细研究的可以看下这篇文章,这个牛人最后用这个库画个移动的钟表 , 太赞了 。
Turtle虽好玩,但是我想要的是我给定数据,然后让它画图,这里就找到另一个常用的画图的库了 。
Matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API , 十分适合交互式地行制图 。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表 。
使用起来也挺简单,
首先import matplotlib.pyplot as plt 导入画图的图 。
然后给定x和y , 用这个命令plt.plot(x, y)就能画图了,接着用plt.show()就可以把图形展示出来 。
接着就是各种完善 , 比如加标题,设定x轴和y轴标签,范围,颜色 , 网格等等,在这篇文章里介绍的很详细 。
现在互联网的好处就是你需要什么内容,基本上都能搜索出来,而且还是免费的 。
我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?
假设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:
这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'] , 那我只要使用如下命令
plt.plot(df['time'], df['ini'])
plt.show()
就能得到如下图:
自己画的是不是很香,哈哈!
然后呢,我在上篇文章中介绍过求Ahr999指数,那可不可以也放到这张图中呢?不就是加一条命令嘛
plt.plot(df['time'], df['Ahr999'])
图形如下:
但是,Ahr999指数怎么就一条线不动啊 , 原来两个Y轴不一致,显示出来太怪了,需要用多Y轴,问题来了 。
继续谷歌一下,把第二个Y轴放右边就行了 , 不过呢得使用多图,重新绘制
fig = plt.figure() # 多图
ax1 = fig.add_subplot(111)
ax1.plot(df['time'], df['ini'], label="BTC price")# 绘制第一个图比特币价格
ax1.set_ylabel('BTC price') # 加上标签
# 第二个直接对称就行了
ax2 = ax1.twinx()# 在右边增加一个Y轴
ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999")# 绘制第二个图Ahr999指数,红色
ax2.set_ylim([0, 50])# 设定第二个Y轴范围
ax2.set_ylabel('ahr999')
plt.grid(color="k", linestyle=":")# 网格
fig.legend(loc="center")#图例
plt.show()
跑起来看看效果,虽然丑了点 , 但终于跑通了 。
这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题 , 留给爱思考爱学习的你 。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了 , 用程序做出自己的晴雨表 。
不能直接写出函数的表达式 怎么在python里画函数图象呢?不写出y=f(x)这样的表达式,由隐函数的等式直接绘制图像,以x2 y2 xy=1的图像为例 , 使用sympy间接调用matplotlib工具的代码和该二次曲线图像如下(注意python里的乘幂符号是**而不是^,还有,python的sympy工具箱的等式不是a==b,而是a-b或者Eq(a,b),这几点和matlab的区别很大)
直接在命令提示行的里面运行代码的效果
from sympy import *;
x,y=symbols('x y');
plotting.plot_implicit(x**2 y**2 x*y-1);
python之pyplot 1、 定义x和y,画图展示 , 保存图片
其中dpi参数指定图像的分辨率为120
【python出图函数 python 函数图】2、 优化绘图线条风格
线条颜色color
线条标记marker
线条风格linestyle
3、 坐标轴的控制
坐标轴范围和标题
坐标图上标记
坐标间隔设定
函数plt.xticks()和plt.xticks()用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定 。用法上,函数的输入是两个列表,第一个表示取值,第二个表示标记 。当然如果你的标记就是取值本身,则第二个列表可以忽略
多图与子图
figure() 函数可以帮助我们同时处理生成多个图,而subplot()函数则用来实现,在一个大图中,出现多个小的子图 。需要注意的是 , figure() 中的参数为图片序号,一般是按序增加的,这里面还涉及一个当前图的概念,其中 subplot() 的参数有3个,分别为行数、列数、以及子图序号 。比如 subplot(1,2,1) 表示这是一个1行,2列布局的图(两个子图,在同一行,分居左右),其中,当前处理的子图是第一个图(也就是左图) 。
这样,我们就用一个脚本画了两张图fig.1和fig.2 。其中 , fig.1包含了分居左右的两个子图,分别是y1和y3的曲线;fig.2是一张整图,画的是y2曲线 。
如果想要某个子图占据整行或者整列,可以采用下面
第三个图 , 实际上相当于将前面的两个小的子图看作是一个整图
关于python出图函数和python 函数图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 搞笑的模拟飞行游戏,搞笑的模拟飞行游戏手机版
- qq空间如何推广,如何推广号
- 半仙玩游戏生存大冒险,半仙玩游戏高级生存
- 角色扮演类游戏推荐游戏名字,角色扮演的游戏推荐
- python写哈希函数 python哈希值生成
- 电商如何分析生意,电商怎样发展
- 小米电视怎么锁定长辈模式,小米电视怎么设置方便老人家开
- java源代码用什么调试,java源程序调试过程
- php实现数据库备份 php操作mysql数据库