python函数绘图 python绘制函数图像方法

python函数图的绘制pre
importnumpy as np
import matplotlib.pyplot as plt
frommatplotlib.patches import Polygon
def func(x):
return-(x-2)*(x-8) 40
x=np.linspace(0,10)
y=func(x)
fig,ax = plt.subplots()
plt.plot(x,y,'r',linewidth=2)
plt.ylim(ymin=20)
a=2
b=9
ax.set_xticks([a,b])
ax.set_xticklabels(['$a$','$b$'])
ax.set_yticks([])
plt.figtext(0.9,0.05,'$x$')
plt.figtext(0.1,0.9,'$y$')
ix=np.linspace(a,b)
iy=func(ix)
ixy=zip(ix,iy)
verts=[(a,0)] list(ixy) [(b,0)]
poly = Polygon(verts,facecolor='0.9',edgecolor='0.5')
ax.add_patch(poly)
x_math=(a b)*0.5
y_math=35
plt.text(x_math,y_math,r"$\int_a^b(-(x-2)*(x-8) 40)dx$",horizontalalignment='center',size=12)
plt.show()
/pre
Python绘图之(1)Turtle库详解Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形 。
画布就是turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置 。
设置画布大小
turtle.screensize(canvwidth=None, canvheight=None, bg=None),参数分别为画布的宽(单位像素), 高, 背景颜色 。
如:turtle.screensize(800,600, "green")
turtle.screensize() #返回默认大小(400, 300)
turtle.setup(width=0.5, height=0.75, startx=None, starty=None),参数:width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例,(startx, starty): 这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心 。
如:turtle.setup(width=0.6,height=0.6)
turtle.setup(width=800,height=800, startx=100, starty=100)
2.1 画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴 , 坐标原点上有一只面朝x轴正方向小乌龟 。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向) , turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态 。
2.2 画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
1) turtle.pensize():设置画笔的宽度;
2) turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组 。
3) turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快 。
2.3 绘图命令
操纵海龟绘图有着许多的命令 , 这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令 。
(1) 画笔运动命令
(2) 画笔控制命令
(3) 全局控制命令
(4) 其他命令
3. 命令详解
3.1 turtle.circle(radius, extent=None, steps=None)
描述:以给定半径画圆
参数:
radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps) 。
举例:
circle(50) # 整圆;
circle(50,steps=3) # 三角形;
circle(120, 180) # 半圆
实例:
1、太阳花
2、五角星
3、时钟程序
python绘图篇1,xlable,ylable设置x,y轴的标题文字 。
2,title设置标题 。
3,xlim,ylim设置x,y轴显示范围 。
plt.show()显示绘图窗口,通常情况下,show()会阻碍程序运行,带-wthread等参数的环境下,窗口不会关闭 。
plt.saveFig()保存图像 。
面向对象绘图
1,当前图表和子图可以用gcf(),gca()获得 。
subplot()绘制包含多个图表的子图 。
configure subplots,可调节子图与图表边框距离 。
可以通过修改配置文件更改对象属性 。
图标显示中文
1,在程序中直接指定字体 。
2,在程序开始修改配置字典reParams.
3,修改配置文件 。
Artist对象
1 , 图标的绘制领域 。
2 , 如何在FigureCanvas对象上绘图 。
3 , 如何使用Renderer在FigureCanvas对象上绘图 。
FigureCanvas和Render处理底层图像操作 , Artist处理高层结构 。
分为简单对象和容器对象 , 简单的Aritist是标准的绘图元件,例如Line 2D,Rectangle,Text,AxesImage等,而容器类型包含许多简单的的 Aritist对象,使他们构成一个整体,例如Axis,Axes,Figure等 。
直接创建Artist对象进项绘图操作步奏:
1,创建Figure对象(通过figure()函数,会进行许多初始化操作,不建议直接创建 。)
2,为Figure对象创建一个或多个Axes对象 。
3,调用Axes对象的方法创建各类简单的Artist对象 。
Figure容器
如何找到指定的Artist对象 。
1,可调用add_subplot()和add_axes()方法向图表添加子图 。
2,可使用for循环添加栅格 。
3,可通过transform修改坐标原点 。
Axes容器
1,patch修改背景 。
2,包含坐标轴,坐标网格,刻度标签,坐标轴标题等内容 。
3,get_ticklabels(),,get-ticklines获得刻度标签和刻度线 。
1,可对曲线进行插值 。
2 , fill_between()绘制交点 。
3,坐标变换 。
4,绘制阴影 。
5,添加注释 。
1,绘制直方图的函数是
2,箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位
数、中位数、第三四分位数与最大值来描述数据的一种方法,它可以粗略地看出数据是否具有对称性以及分
布的分散程度等信息,特别可以用于对几个样本的比较 。
3,饼图就是把一个圆盘按所需表达变量的观察数划分为若干份,每一份的角度(即面积)等价于每个观察
值的大小 。
4,散点图
5,QQ图
低层绘图函数
类似于barplot(),dotchart()和plot()这样的函数采用低层的绘图函数来画线和点,来表达它们在页面上放置的位置以及其他各种特征 。
在这一节中,我们会描述一些低层的绘图函数 , 用户也可以调用这些函数用于绘图 。首先我们先讲一下R怎么描述一个页面;然后我们讲怎么在页面上添加点,线和文字;最后讲一下怎么修改一些基本的图形 。
绘图区域与边界
R在绘图时,将显示区域划分为几个部分 。绘制区域显示了根据数据描绘出来的图像,在此区域内R根据数据选择一个坐标系,通过显示出来的坐标轴可以看到R使用的坐标系 。在绘制区域之外是边沿区,从底部开始按顺时针方向分别用数字1到4表示 。文字和标签通常显示在边沿区域内,按照从内到外的行数先后显示 。
添加对象
在绘制的图像上还可以继续添加若干对象,下面是几个有用的函数 , 以及对其功能的说明 。
【python函数绘图 python绘制函数图像方法】 ?points(x, y, ...),添加点
?lines(x, y, ...),添加线段
?text(x, y, labels, ...) , 添加文字
?abline(a, b, ...),添加直线y=a bx
?abline(h=y, ...),添加水平线
?abline(v=x, ...),添加垂直线
?polygon(x, y, ...) , 添加一个闭合的多边形
?segments(x0, y0, x1, y1, ...),画线段
?arrows(x0, y0, x1, y1, ...),画箭头
?symbols(x, y, ...),添加各种符号
?legend(x, y, legend, ...) , 添加图列说明
用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函数绘图的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于python绘制函数图像方法、python函数绘图的信息别忘了在本站进行查找喔 。

    推荐阅读