python中plot函数?python怎么下载pil库
大家好,关于python中plot函数很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于python怎么下载pil库的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
Python之神奇的绘图库matplotlib
matplotlib是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。本文将以例子的形式分析matplot中支持的,分析中常用的几种图。其中包括填充图、散点图(scatter plots)、.条形图(bar plots)、等高线图(contour plots)、点阵图和3D图,下面来一起看看详细的介绍:
一、填充图
参考代码
简要分析
这里主要是用到了fill_between函数。这个函数很好理解,就是传入x轴的数组和需要填充的两个y轴数组;然后传入填充的范围,用where=来确定填充的区域;最后可以加上填充颜色啦,透明度之类修饰的参数。
相关推荐:《Python教程》
效果图
二、散点图(scatter plots)
参考代码
简要分析
1.首先介绍一下numpy的normal函数,很明显,这是生成正态分布的函数。这个函数接受三个参数,分别表示正态分布的平均值,标准差,还有就是生成数组的长度。很好记。
2.然后是arctan2函数,这个函数接受两个参数,分别表示y数组和x数组,然后返回对应的arctan(y/x)的值,结果是弧度制。
3.接下来用到了绘制散点图的scatter方法,首先当然是传入x和y数组,接着s参数表示scale,即散点的大小;c参数表示color,我给他传的是根据角度划分的一个数组,对应的就是每一个点的颜色(虽然不知道是怎么对应的,不过好像是一个根据数组内其他元素进行的相对的转换,这里不重要了,反正相同的颜色赋一样的值就好了);最后是alpha参数,表示点的透明度。scatter函数的高级用法可以参见官方文档scatter函数或者help文档,最后设置下坐标范围就好了。
效果图
三、等高线图(contour plots)
参考代码
简要分析
1.首先要明确等高线图是一个三维立体图,所以我们要建立一个二元函数f,值由两个参数控制,(注意,这两个参数都应该是矩阵)。
2.然后我们需要用numpy的meshgrid函数生成一个三维网格,即,x轴由第一个参数指定,y轴由第二个参数指定。并返回两个增维后的矩阵,今后就用这两个矩阵来生成图像。
3.接着就用到coutourf函数了,所谓contourf,大概就是contour fill的意思吧,只填充,不描边;这个函数主要是接受三个参数,分别是之前生成的x、y矩阵和函数值;接着是一个整数,大概就是表示等高线的密度了,有默认值;然后就是透明度和配色问题了,cmap的配色方案这里不多研究。
4.随后就是contour函数了,很明显,这个函数是用来描线的。用法可以类似的推出来,不解释了,需要注意的是他返回一个对象,这个对象一般要保留下来个供后续的加工细化。
5.最后就是用clabel函数来在等高线图上表示高度了,传入之前的那个contour对象;然后是inline属性,这个表示是否清除数字下面的那条线,为了美观当然是清除了,而且默认的也是1;再就是指定线的宽度了。
效果图
Python作图程序
实战小程序:画出y=x^3的散点图
样例代码如下:
[python]view plaincopy
#coding=utf-8
importpylabasy#引入pylab模块
x=y.np.linspace(-10,10,100)#设置x横坐标范围和点数
y.plot(x,x*x*x,'or')#生成图像
ax=y.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
ax.set_yticks([-1000,-500,500,1000])
y.xlim(x.min(),x.max())#将横坐标设置为x的最大值和最小值
y.show()#显示图像
[python]view plaincopy
importpylabasy
程序中引入的pylab属于matplotlib的一个模块,将其名字用y代替,其中包括了许多NumPy和pyplot模块中常用的函数,方便用户快速进行计算和绘图,十分适合在IPython交互式环境中使用。
[python]view plaincopy
y.np.linspace(-10,10,100)
此为numpy中的一个函数,返回的是等间距的值,numpy.linspace(a,b,c):a指的是开始位置,b表示的是结束位置,c表示产生点的个数(默认为50)举例:
[python]view plaincopy
>>>np.linspace(2.0,3.0,num=5)
array([2.,2.25,2.5,2.75,3.])
[python]view plaincopy
y.plot(x,x*x*x,'or')#生成图像
后面加上‘o'表示为散点图'r'可设置颜色为红色,基本上和matlab的操作很像。
[python]view plaincopy
y.xlim(x.min(),x.max())
这条语句使用了xlim函数,将横坐标设置为x的大小
Python 中的可视化工具介绍
几周前,R语言社区经历了一场关于画图工具的讨论。对于我们这种外人来说,具体的细节并不重要,但是我们可以将一些有用的观点运用到 Python中。讨论的重点是 R语言自带的绘图工具 base R和 Hadley Wickham开发的绘图工具 ggplot2之间的优劣情况。如果你想了解更多细节内容,请阅读以下几篇文章:
其中最重要的两个内容是:
不是所有人都认同第二个观点,ggplot2确实无法绘制出所有的图表类型,但是我会利用它来做分析。
以下是 2016年 4月写的关于绘图工具的概述。出于多方面的原因,绘图工具的选取更多地取决于个人偏好,因此本文介绍的 Python绘图工具也仅代表我的个人使用偏好。
Matplotlib是一个强大的工具,它是 Pandas' builtin-plotting和 Seaborn的基础。 Matplotlib能够绘制许多不同的图形,还能调用多个级别的许多 API。我发现 pyplot api非常好用,你可能用不上 Transforms或者 artists,但是如果你有需求的话可以查阅帮助文档。我将从 pandas和 seaborn图开始介绍,然后介绍如何调用 pyplot的 API。
DataFrame和 Series拥有.plot的命名空间,其中有许多图形类别可供选择(line, hist, scatter,等等)。 Pandas对象还提供了额外的用于增强图形展现效果的数据,如索引变量。
由于 pandas具有更少的向后兼容的限制,所以它具有更好的美学特性。从这方面来说,我认为 pandas中的 DataFrame.plot是一个非常实用的快速探索性分析的工具。
Michael Waskom所开发的 Seaborn提供了一个高层次的界面来绘制更吸引人统计图形。 Seaborn提供了一个可以快速探索分析数据不同特征的 API接口,接下来我们将重点介绍它。
Bokeh是一款针对浏览器开发的可视化工具。
和 matplotlib一样,**Bokeh
**拥有一系列 API接口。比如 glpyhs接口,该接口和 matplotllib中的 Artists接口非常相似,它主要用于绘制环形图、方形图和多边形图等。最近 Bokeh又开放了一个新的图形接口,该接口主要用于处理词典数据或 DataFrame数据,并用于绘制罐头图。
以下是一些本文没有提到的可视化工具:
我们将利用 ggplot2中的 diamonds数据集,你可以在 Vincent Arelbundock's RDatasets中找到它(pd.read_csv(' ')),此外我们还需要检测是否已经安装 feather。
[站外图片上传中……(4)]
Bokeh提供了两个 API,一个是低级的 glyph API,另一个是高级的 Charts API。
[站外图片上传中……(5)]
还不是很清楚我们应该在啥时候利用 Bokeh来进行探索性分析,不过它的交互式功能可以激发我的兴趣。就个人而言,由于习惯问题我平时仍然一直使用 matplotlib来绘图,我还无法完全切换到 Bokeh中。
我非常喜欢 Bokeh的仪表盘功能和 bokeh server的 webapps。
[站外图片上传中……(6)]
[站外图片上传中……(7)]
[站外图片上传中……(8)]
matplotlib并不局限于处理 DataFrame数据,它支持所有使用 getitem作为键值的数据类型。
[站外图片上传中……(9)]
[站外图片上传中……(10)]
我们从列变量的名字中提取出轴标签,利用 Pandas可以更加便捷地绘制一系列共享 x轴数据的图形。
[站外图片上传中……(11)]
[站外图片上传中……(12)]
本文中的剩余部分将重点介绍 seaborn和为什么我认为它是探索性分析的强大工具。
我强烈建议你阅读 Seaborn的 introductory notes,这上面介绍了 seaborn的设计逻辑和应用领域。
我们可以通过一个稳定的且易懂的 API接口来调用 Seaborn。
事实上,seaborn是基于 matplotlib开发的,这意味着如果你熟悉 pyplot API的话,那么你可以很容易地掌握 seaborn。
大多数 seaborn绘图函数的参数都由 x, y, hue,和 data构成(并不是所有的参数都是必须的)。如果你处理的对象是 DataFrame,那么你可以直接将列变量的名称和数据集的名称一同传递到绘图函数中。
[站外图片上传中……(13)]
[站外图片上传中……(14)]
[站外图片上传中……(15)]
[站外图片上传中……(16)]
我们可以很轻易地探究两个变量之间的关系:
[站外图片上传中……(17)]
[站外图片上传中……(18)]
或者一次探究多个变量之间的关系:
[站外图片上传中……(19)]
[站外图片上传中……(20)]
pariplot是 PairGrid的一个包装函数,它提供了 seaborn一个重要的抽象功能——Grid。Seaborn的 Grid将 matplotlib中Figure和数据集中的变量联系起来了。
我们有两种方式可以和 grids进行交互操作。其一,seaborn提供了类似于 pairplot的包装函数,它提前设置了许多常见任务的参数;其二,如果你需要更多的自定义选项,那么你可以直接利用 Grid方法。
[站外图片上传中……(21)]
[站外图片上传中……(22)]
[站外图片上传中……(23)]
34312 rows× 7 columns
[站外图片上传中……(24)]
[站外图片上传中……(25)]
FaceGrid可以通过控制分面变量来生成 Grid图形,其中PairGrid是它的一个特例。接下来的案例中,我们将以数据集中的 cut变量为分面变量来绘制图像:
[站外图片上传中……(26)]
[站外图片上传中……(27)]
最后一个案例展示了如何将 seaborn和 matplotlib结合起来。g.axes是matplotlib.Axes的一个数组,g.fig是matplotlib.Figure的一个特例。这是使用 seaborn时常见的一个模式:利用 seaborn的方法来绘制图像,然后再利用 matplotlib来调整细节部分。
我认为 seaborn之所以吸引人是因为它的绘图语法具有很强的灵活性。你不会被作者所设定的图表类型所局限住,你可以根据自己的需要创建新的图表。
[站外图片上传中……(28)]
[站外图片上传中……(29)]
[站外图片上传中……(30)]
[站外图片上传中……(31)]
本来,我打算准备更多的例子来介绍 seaborn,但是我会将相关链接分享给大家。Seaborn的说明文档写的非常详细。
最后,我们将结合 scikit-learn来介绍如何利用 GridSearch来寻找最佳参数。
[站外图片上传中……(32)]
[站外图片上传中……(33)]
[站外图片上传中……(34)]
原文链接:
译者:Fibears
好了,文章到这里就结束啦,如果本次分享的python中plot函数和python怎么下载pil库问题对您有所帮助,还望关注下本站哦!