import matplotlib.pyplot as plt
plt.scatter(xdata,ydata)
(xdata,ydata为两个需要作图的数据集)
今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?
搜索之后发现,它会弹出一个对话框,然后就开始画了,比如下图
第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库,这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了.
它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:
然后呢? 循环重复就画出来这个图了
好玩吧.
有需要仔细研究的可以看下这篇文章 ,这个牛人最后用这个库画个移动的钟表,太赞了.
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()
就能得到如下图:
自己画的是不是很香,哈哈!
图形如下:
继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制
fig = plt.figure() # 多图
ax1 = fig.add_subplot(111)
ax1.plot(df['time'], df['ini'], label="BTC price")? #?绘制第一个图比特币价格
ax1.set_ylabel('BTC price') #?加上标签
# 第二个直接对称就行了
plt.grid(color="k", linestyle=":")# 网格
fig.legend(loc="center")#图例
跑起来看看效果,虽然丑了点,但终于跑通了.
这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你.
输入以下代码导入我们用到的函数库.
import numpy as np
y=np.sin(x);
plt.plot(x,y)
采用刚才代码后有可能无法显示下图,然后在输入以下代码就可以了:
raw_input获取的输入是字符串,不能直接用np.array,需要用split进行切分,然后强制转化成数值类型,才能用plot函数
我把你的代码稍微修改了一下,可能不太漂亮,不过能运行了
a = raw_input('function')
a = a.split(' ')#依空格对字符串a进行切分,如果是用逗号分隔,则改成a.split(',')
b = []
for i in range(len(a)):#把切分好的字符强制转化成int类型,如果是小数,将int改为float
b.append(int(a[i]))
plt.plot(x, b, label='x', color="green", linewidth=1)
用python怎样画出如题所示的正余弦函数图像? 如此编写代码,使其中两个轴、图例、刻度,大小,LaTex公式等要素与原图一致,需要用到的代码如下,没有缩进:
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(a,b,label=r"$y=\sin(\theta)$")
ax.plot(a,c,label=r"$y=\cos(\theta)$")
ax.grid(True)
ax.set_ylabel(r"$y$")
ax.set_xlabel(r"$\theta$")
plt.title("Sine Cosine Waves")
plt.legend()
plt.savefig("SinCosWaveDegFont.jpg")
代码运行show的窗口图
代码的截图
代码输出的文件的图
直接在命令提示行的里面运行代码的效果
from sympy import *;
x,y=symbols('x y');
以上就是土嘎嘎小编为大家整理的python数学函数画图相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!