×

怎么用python画图

怎么用python画图(怎么用python画图形)

hacker hacker 发表于2022-06-05 01:40:26 浏览32 评论2

2人参与发表评论

本文导读目录:
1、怎么用python绘图
2、用python代码绘图?
3、无所不能的python编程是怎么快速画图的呢
4、如何用python绘制简单条形图?
5、如何用python画冰墩墩?

怎么用python绘图

请查阅python的第三方库matplotlab,这个里面有许多类似matlib(http://matplotlib.org/gallery.html)的图形绘制。

实在不行你可以自己将数据转换成对数,然后再画图即可。

用python代码绘图?

python中subplot的用法

subplot是python中子图的绘制,这里主要介绍如何排布子图与极坐标图的绘制。

具体用法,需要搜索网上内容,再结合自己的情况修改参数即可。

无所不能的python编程是怎么快速画图的呢

python绘图工具有很多,常用的turtle海龟绘图体系,只要引入import

turtle就可以无需安装

如何用python绘制简单条形图?

如何用python绘制简单条形图呢?这里离不开matplotlib的使用。

条形图是数据可视化图形中很基础也很常用的一种图,简单解释下:条形图也叫长条图(英语:bar chart),亦称条图(英语:bar graph)、条状图、棒形图、柱状图、条形图表,是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值(不同时间或者不同条件),只有一个变量,通常利用于较小的数据集分析。长条图亦可横向排列,或用多维方式表达。

那么一个普通的条形图是长什么样子的呢?

当!当!当!就是下图的这个样子:

图先亮出来啦,接下来研究这个图是怎么画的吧,先看一下原数据长什么样子:

实际画图的流程和画折线图很相近,只是用到的画图函数不一样,绘制条形图的函数plt.bar():

由于这只是最简单的一个条形图,实际上条形图的函数plt.bar()还有不少可以探索的参数设置,和对折线图函数plt.plot()的探索差不多,有兴趣的孩子可以自己去进行探索哦。

按照条形长短进行排序展示的条形图

当然也可以有其他的设置,比如说上图中的线条高低参差不齐,这是因为x轴的数据是按照学校名称进行排序的,那么可不可以按照分数的高低进行排序呢?也就是让所有的长方形按照从高到矮或者从矮到高的顺序进行排列?

当然可以啦!这里需要强调的是,条的高低排列等信息都是来源于原数据的,要想让条形的顺序发生改变,需要对画图的来源数据进行更改呢!

把原数据逆序排序后截取前十名数据赋值给data_yuwen,作为新的数据源传入画图函数plt.bar(),画出来的图自然就不一样了。

先看一眼数据长什么样子:

根据这个数据源绘制出的图形如下,由于用来画图的数据进行了降序排序操作,所以生成条形图的条也会进行降序排序展示:

很多时候,我们常见的条形图还有另一种展现形式,那就是横向的条形图,比较火的那种动态条形图绝大多数也都是横向的条形图,那么横向的条形图如何绘制呢?

理解plt.bar()主要参数

其实也不难,只要清楚plt.bar()函数中主要参数的作用就可以了!条形图函数中有五个主要参数,分别是x,height,width,bottom,orientation。其中x控制的是每个条在x轴上位置,height控制的是每个条的长度,width控制的是每个条的宽度,bottom控制的是每个条在y轴方向的起始位置,orientation控制的是条形的方向,是纵向还是横向,默认是纵向的。

通过一个小例子理解下这几个参数的作用:

上边的几行代码输出的图形如下:

对比着代码和实际输出的条形图,各个主要参数的作用是不是一目了然啦?

横向条形图

理解了这几个参数作用后,纵向的条形图转换成横向的条形图就没什么难度了!

需要设置所有条形在x轴的位置都为0,也就全部从最左侧开始画条形;由于是横向条形图,所以实际上条的宽度显示的是数据大小,将width参数设置成原数据中的语文成绩;bottom控制每个条在y轴方向的起始位置,设置bottom=range(10)设置每个条形在y轴的起始位置各不相同避免有条形重叠;height控制的是每个条在y轴方向上的长度,条形图横向设置后,在y轴上的长度失去了衡量数据的意义,所以直接设置一个常数即可;最后设置条形的方向为横向,即orientation=“horizontal”。

温馨提示:数据和标签一定要匹配,即plt.bar()重点的数据要和plt.yticks()中提取出来的标签一一对应,一旦不匹配,整个图展现的结果就是一个错误的结果!

上述代码生成的条形图如下:

感觉上边这种生成横向条形图的方式有点点绕,和人们的习惯认知有点不大一样,难道画一个横向条形图就非得转变自己的习惯认知这么反人类吗?

当然不是的,实际上有更简单的方法绘制一个横向条形图,之所以没有一开始就直接用这种简单的方法,也是为了让大家体会下条形图参数的灵活设置而已,而且如果比较绕的方法都能理解了,简单的方法理解和运用起来就更没有难度了啊!

不卖关子了,我们来认识下和plt.bar()函数类似的plt.barh()函数。

plt.barh()函数是专门绘制水平条形图的函数,主要的参数有:

y 控制y轴显示的标签来源width 控制横向条形的长度,即用来进行对比的数据源height 条形的宽度需要设置的参数主要就是这三个,比用plt.bar()函数绘制水平条形图简单了很多,具体代码如下:

效果图:

和用plt.bar()函数绘制的横向条形图一毛一样对不对?以后有需求绘制横向条形图,尽量用plt.barh()函数吧,毕竟它是专门绘制这种类型图的,简单好用。

然而实际工作中对于条形图的需求不只是这些,比如例子中只是对各个学校语文成绩的展示,有时候需要各个学科的成绩同时展现在一幅条形图中,有时候也需要绘制堆积条形图对各学科的成绩以及总成绩进行展示,这些图又该如何绘制呢?其实只要理解了各个参数的含义,绘制这些图也不在话下,至于具体怎么画,且看下回分解啊!

如何用python画冰墩墩?

class Shape: # 基类(雪人各部件(形状)共有的属性)

def __init__(self, cvns, points, fill): # 构造方法 画布 位置坐标 颜色

self.cvns = cvns # 画布

self.points = points # 坐标(x1, y1, x2, y2)

self.fill = fill

self.pid = None # 当前图形的id

def delete(self): # 删除图形

if self.pid:

self.cvns.delete(self.pid)

class ShapeAngles(Shape): # 继承基类(增加了角度))

def __init__(self, cvns, points, fill, angles=(10, 170)): # angles:角度值,带默认参数

super(ShapeAngles, self).__init__(cvns, points, fill) # 调用基类构造: cvns,points,fill

self.angles = {'start':angles[0], 'extent':angles[1]} # 构造自己的属性:angles

class HatTop(Shape): # 帽子顶部

def draw(self):

# self.pid = self.cvns.create_oval(self.points, fill='white') # 椭圆形

self.pid = self.cvns.create_oval(self.points, fill=self.fill) # 椭圆形

class HatBottom(Shape): # 帽子底部

def draw(self):

self.p

群贤毕至

访客
温人俛就 温人俛就2022-06-05 13:02:21 | 回复 这几个参数的作用:上边的几行代码输出的图形如下:对比着代码和实际输出的条形图,各个主要参数的作用是不是一目了然啦?横向条形图理解了这几个参数作用后,纵向的条形图转换成横向的条形图就没什么难度
礼忱囍笑 礼忱囍笑2022-06-05 09:31:57 | 回复 ):由于这只是最简单的一个条形图,实际上条形图的函数plt.bar()还有不少可以探索的参数设置,和对折线图函数plt.plot()的探索差不多,有兴趣的孩子可以自己去进行探索哦。按照条形长短进行排序展示的条形图当然也可以有其他的设置,比如说上