成都创新互联网站制作重庆分公司

python画函数坐标图 python绘制函数图

Python-matplotlib绘制带箭头x-y坐标轴图形

在Python的数据可视化库中,采用matplotlib绘制相关图形时,若不加任何设定,一般的x-y坐标轴是不带箭头且是一个封闭的矩形。我们以Sigmoid函数的绘制,给大家展示一下。

利津网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联公司成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

matplotlib的辅助工具,包含一系列对坐标轴设置的框架。其中的axisartist包就用来设置坐标轴的类型。

1.创建画布并引入axisartist工具。

2.绘制带箭头的x-y坐标轴

我们先把原始的如上图的所有坐标轴隐藏,即长方形的四个边。

然后用ax.new_floating_axis在绘图区添加坐标轴x、y,这里的ax.new_floating_axis(0,0),第一个0代表平行直线,第二个0代表该直线经过0点。同样,ax.axis["y"] = ax.new_floating_axis(1,0),则代表竖直曲线且经过0点。

再次,x.axis["x"].set_axisline_style("-", size = 1.0)表示给x轴加上箭头,"-"表示是空箭头,size = 1.0表示箭头大小。ax.axis["y"].set_axisline_style("-|", size = 1.0)中"-|"则是实心箭头。

最后,设置x、y轴上刻度显示方向,对于x轴是刻度标签在上面还是下面,y轴则是刻度标签在左边还是右边。

3.在带箭头的x-y坐标轴背景下,绘制函数图像

tist坐标轴工具——将原始坐标轴均隐藏掉——添加新的基于原点的x与y轴——为新坐标轴加入箭头,并设置刻度显示方式——加入图形。

python函数图的绘制

pre

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.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如何画cos和sin的图啊?

在python自带编辑器IDLE中,新建脚本如作图.py

导入需要的模块

import numpy as np

import scipy as sp

import pylab as pl

2

输入代码

x=np.linspace(0,4*np.pi,100)

pl.plot(x,pl.sin(x))

pl.show()

3

执行代码,按F5,可直接显示图片

4

几点说明:

1. 方法linspace(0,4*np.pi,100)表示从0开始,到4*pi结束,生成100个点

2. 方法plot为画图函数,相当于plot(x,y),x为横坐标,y为纵坐标

3.show()为展示出来

希望采纳!!

用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画图:,横坐标是点数(1到1000),纵坐标是大小不同的数值,即如何用颜色的深浅代表数值的大小?

1、首先在python软件中,创建一个响应鼠标的自定义函数,当鼠标在画布上面点击一下,就画一个圆。

2、创建一个画布,背景是白色:img=np.ones((365,500,3),np.uint8)*255。

3、然后创建一个窗口:cv2.namedWindow('image')。当鼠标在这个窗口里面的时候,上面的自定义函数会响应鼠标。

4、开始一个while循环,每次在image窗口里面点击鼠标,就会画一个圆。

5、执行程序之后,在画布上随机的点击鼠标,就可以得到彩色的圆。


文章名称:python画函数坐标图 python绘制函数图
分享网址:http://cxhlcq.com/article/hehhio.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部