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)
①.,xlable,ylable设置x,y轴的标题文字.
plt.show()显示绘图窗口,通常情况下,show()会阻碍程序运行,带-wthread等参数的环境下,窗口不会关闭.
plt.saveFig()保存图像.
面向对象绘图
①.,当前图表和子图可以用gcf(),gca()获得.
subplot()绘制包含多个图表的子图.
configure subplots,可调节子图与图表边框距离.
可以通过修改配置文件更改对象属性.
图标显示中文
①.,在程序中直接指定字体.
Artist对象
①.,图标的绘制领域.
FigureCanvas和Render处理底层图像操作,Artist处理高层结构.
直接创建Artist对象进项绘图操作步奏:
①.,创建Figure对象(通过figure()函数,会进行许多初始化操作,不建议直接创建.)
Figure容器
如何找到指定的Artist对象.
①.,可调用add_subplot()和add_axes()方法向图表添加子图.
Axes容器
①.,patch修改背景.
①.,可对曲线进行插值.
①.,绘制直方图的函数是
数、中位数、第三四分位数与最大值来描述数据的一种方法,它可以粗略地看出数据是否具有对称性以及分
布的分散程度等信息,特别可以用于对几个样本的比较.
值的大小.
低层绘图函数
类似于barplot(),dotchart()和plot()这样的函数采用低层的绘图函数来画线和点,来表达它们在页面上放置的位置以及其他各种特征.
在这一节中,我们会描述一些低层的绘图函数,用户也可以调用这些函数用于绘图.首先我们先讲一下R怎么描述一个页面;然后我们讲怎么在页面上添加点,线和文字;最后讲一下怎么修改一些基本的图形.
绘图区域与边界
添加对象
在绘制的图像上还可以继续添加若干对象,下面是几个有用的函数,以及对其功能的说明.
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, ...),添加图列说明
如需转载请联系华章 科技
如果已安装Anaconda Python版本,就已经安装好了可以使用的 Matplotlib.否则,可能要访问官网并从中获取安装说明:
正如使用np作为 NumPy 的缩写,我们将使用一些标准的缩写来表示 Matplotlib 的引入:
在本书中,plt接口会被频繁使用.
让我们创建第一个绘图.
假设想要画出正弦函数sin(x)的线性图.得到函数在x坐标轴上0≤x<10内所有点的值.我们将使用 NumPy 中的 linspace 函数来在x坐标轴上创建一个从0到10的线性空间,以及100个采样点:
可以使用 NumPy 中的sin函数得到所有x点的值,并通过调用plt中的plot函数把结果画出来:
你亲自尝试了吗?发生了什么吗?有没有什么东西出现?
实际情况是,取决于你在哪里运行脚本,可能无法看到任何东西.有下面几种可能性:
① 从.py脚本中绘图
如果从一个脚本中运行 Matplotlib,需要加上下面的这行调用:
在脚本末尾调用这个函数,你的绘图就会出现!
这实际上是交互式地执行Matplotlib最方便的方式.为了让绘图出现,需要在启动 IPython 后使用所谓的%matplotlib魔法命令.
此时此刻呢,无须每次调用plt.show()函数,所有的绘图将会自动出现.
如果你是从基于浏览器的 Jupyter Notebook 中看这段代码,需要使用同样的%matplotlib魔法命令.然而,也可以直接在notebook中嵌入图形,这会有两种输出选项:
在本书中,将会使用inline选项:
现在再次尝试一下:
上面的命令会得到下面的绘图输出结果:
如果想要把绘图保存下来留作以后使用,可以直接在 IPython 或者 Jupyter Notebook 使用下面的命令保存:
仅需要确保你使用了支持的文件后缀,比如.jpg、.png、.tif、.svg、.eps或者.pdf.
作为本章最后一个测试,让我们对外部数据集进行可视化,比如scikit-learn中的数字数据集.
为此,需要三个可视化工具:
那么开始引入这些包吧:
第一步是载入实际数据:
如果没记错的话,digits应该有两个不同的数据域:data域包含了真正的图像数据,target域包含了图像的标签.相对于相信我们的记忆,我们还是应该对digits稍加 探索 .输入它的名字,添加一个点号,然后按Tab键:digits.TAB,这个操作将向我们展示digits也包含了一些其他的域,比如一个名为images的域.images和data这两个域,似乎简单从形状上就可以区分.
所以呢,如果想要绘制出一副单独的图像,使用images将更加合适.首先,使用NumPy的数组切片从数据集中获取一幅图像:
上面的命令得到下面的输出:
此外,这里也使用cmap参数指定了一个颜色映射.默认情况下,Matplotlib 使用MATLAB默认的颜色映射jet.然而,在灰度图像的情况下,gray颜色映射更有效.
最后,可以使用plt的subplot函数绘制全部数字的样例.subplot函数与MATLAB中的函数一样,需要指定行数、列数以及当前的子绘图索引(从1开始计算).我们将使用for 循环在数据集中迭代出前十张图像,每张图像都分配到一个单独的子绘图中.
这会得到下面的输出结果:
本文摘编自<<机器学习:使用OpenCV和Python进行智能图像处理>>,经出版方授权发布.
pre
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def func(x):
x=np.linspace(0,10)
y=func(x)
fig,ax = plt.subplots()
ax.set_xticks([a,b])
ax.set_xticklabels(['$a$','$b$'])
ax.set_yticks([])
ix=np.linspace(a,b)
iy=func(ix)
ixy=zip(ix,iy)
verts=[(a,0)]+list(ixy)+[(b,0)]
ax.add_patch(poly)
plt.show()
/pre
以上就是土嘎嘎小编为大家整理的python基本函数画图相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!