天天看点

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

数据可视化、数据分析是Python的主要应用场景之一,Python为数据展示提供了大量优秀的功能包,无论你想画什么图,在python中都能找到相对应的库,比较常用的有matplotlib、pygal、Pychart等。今天就给大家带来一期实用的小技能,让你成为画图小能手。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

Matplotlib

Matplotlib是Python可视化程序库的泰斗,功能极其强大,可以绘制各种形式的2D、3D图形包括普通的线图、直方图、饼图、散点图等,还可以任意改变图像的大小、形状、颜色等。Matplotlib受MATLAB的启发构建,但是MATLAB语言是面向过程的,而matplotlib是通过函数式调用来构建对象,所以本质上matplotlib是面向对象的。Matplotlib的官方文档里面有很多图形的开源代码,可以从里面找到很多你想要的图形,官网地址:

Thumbnail gallery - Matplotlib 2.0.2 documentation​matplotlib.org

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

这里粗略地介绍一下matplotlib面向对象编程中涉及到的一些基本的概念:

1. Figure对象:整个图像就是一个Figure对象,一个Figure对象至少包含一个子图。

2. Axes对象:用于代表x轴和y轴所对应的一个子图对象。

3. Axis对象:用于数据轴刻度和数值的显示。

4. Artist对象:所有的对象包括Figure对象、Axes对象和Axis对象都属于Artist对象。

在python中调用matplotlib函数包有两种办法,一种是在pylab模式中包含一个星号,另一种是在matplotlib.pyplot模式下使用plt(整洁的方法)。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

(1) 绘制2D图像

Matplotlib 绘制2D图像,只需简单的一行代码就可以画出优美的图形。

pyplot的一些基础图标函数如下所示:

绘制坐标图:plt.plot(x,y,fmt,…)

箱形图:plt.boxplot(data,notch,position)

条形图:plt.bar(left,height,width,bottom)

极坐标图:plt.polar(theta,r)

饼图:plt.pie(data,explode)

功率谱密度图:plt.psd(x,NFFT=256,pad_to,Fs)

谱图:plt.specgram(x,NFFT=256,pad_to,F)

X-Y的相关性函数:plt.cohere(x,y,NFFT=256,Fs)

散点图,其中x,y长度相同:plt.scatter(x,y)

步阶图:plt.step(x,y,where)

直方图:plt.hist(x,bins,normed)

等值图:plt.contour(X,Y,Z,N)

通过这些基本函数,可以画出很多功能丰富的数据图,比如饼图、柱状图、直方图等,这些图像对于数据的分析很有帮助。

饼图

:饼图的绘制是通过pie()函数绘制的,创建饼图的两个重要的参数就是x和lables,x指的是饼图各部分的数值,lables指的是各部分对应的标签。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
直方图

:直方图通过hist()函数实现,每次调用hist()都会生成一组直方图,直方图的个数、类型、颜色等都可以随意设置。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
条形图

:条形图通过bar()函数绘制,每次调用bar()函数时都会调用一组条形图,要想生成多组条形图,只需要多次调用bar()函数即可。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
极坐标图

:Matplotlib 的 pyplot 子库提供了绘制极坐标图的方法,在调用 subplot() 创建子图时通过设置 projection=‘polar’ 便可创建一个极坐标子图,然后调用 plot() 在极坐标子图中绘图。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

(2) 绘制3D图像

进行数据分析时,很多时候仅仅2D图是不能满足要求的,3D图在数据分析、数据建模、图形和图像处理都有着广泛的应用。Python中的3D绘制,仍然采用matplotlib模块,创建3D图有两种方式可以实现,一种是安装mpl_toolkits工具包,安装好这个模块之后,调用里面的mplot3d类就可以进行3D图形的绘制。另外一种是通过关键字projection='3d'来实现,这两种方式都可以生成具有三维格式的对象。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

显示3D坐标轴关键的三步:

①用pyplot的figure()函数创建一个figure对象

②以它为参数创建Axes3D对象,使之具有3D坐标轴

③pyplot的show()方法显示所有figure对象

3D表面球状

的绘制,仅仅简单几行代码就可以搞定!

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
3D花朵的绘制
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
3D直方图的绘制
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
3D散点图
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

Turtle

除了用matplotlib库来画图之外,还有一个很直观画图函数库:turtle。Turtle库是python的标准库之一,属于入门级的图形绘制函数库。如果说用matplotlib来画图太过于正经,学术味儿太浓的话,那么用turtle来画图就比较随意了。Turtle是python语言中一个简单流行的绘图函数库,使用非常方便,直接导入import turtle即可。虽然turtle库比较简单,但是它却能画出很复杂的图形,而且易于操作,其实可以把turtle看作一支画笔,能够画什么,取决于你是一个怎样的画家,取决于你怎么下笔。Turtle库绘制原理:想象一下一个海龟在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、方向宽度等。

Turtle的空间坐标体系:

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

Turtle的移动主要靠goto函数实现:

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

Turtle库的基础命令介绍:

1、 画布

画布cancas是绘图区域,可以设置它的大小和初始位置

turtle.screensize(x,y,'color') 大小的设置

turtle.setup(width,height) 初始位置

2.

画笔

(1)画笔运动的命令

turtle.forward(a) 向当前画笔方向移动a像素长度

turtle.backward(a) 向当前画笔相反方向移动a像素长度

turtle.right(a) 顺时针移动

aturtle.left(a) 逆时针移动

aturtle.pendown() 移动时绘制图形

turtle.goto(x,y) 将画笔移动到坐标为x,y的位置

turtle.penup() 移动时不绘制图形,提起笔

turtle.speed(a) 画笔绘制的速度范围

turtle.circle() 画图,半径为正,表示圆心在画笔的左边画圈

(2)画笔控制命令

turtle.pensize(width) 绘制图形的宽度

turtle.pencolor() 画笔的颜色

turtle.fillcolor(a) 绘制图形的填充颜色

turtle.color(a1,a2) 同时设置pencolor=a1,fillcolor=a2

turtle.filling() 返回当前是否在填充状态

turtle.begin_fill() 准备开始填充图形

turtle.end_fill() 填充完成

turtle.hideturtle() 隐藏箭头显示

turtle.showturtle() 显示箭头

(3)全局控制命令

turtle.clear() 清空turtle窗口,但是turtle的位置和状态不会改变

turtle.reset() 清空窗口,重置turtle状态为起始位置

turtle.undo() 撤销上一个turtle动作

下面让我们一起欣赏一下用turtle画出的有趣的图。

哆啦A梦的绘制
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
螺旋圈的绘制
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
时钟的绘制

(这是一个可以动态显示的时钟哦)

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
玫瑰的绘制:下面几种颜色的玫瑰你喜欢哪一个呢?
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
五星红旗的绘制:对祖国满满的祝福
plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)
最后的最后,一颗小心心送个智慧与美貌并存的你

想了解更多关于我们金翅创客实验室的内容,请关注微信公众号:金翅创客。

plot画图 python 双线_如何用python画出优雅美妙的图形(附代码)

原创声明:本文内容均为本人原创作品。请任何和个人、组织,在经过本人授权后,方可转载。

继续阅读