请问怎么用python画出这样的图? 如何用python绘制简单条形图?
思路:
1. 确定好需要画的图。
2. 创建一个画布,用来画你需要的图。
(1)画布大小,可以使用默认大小,也可以自定义画布大小。
(2)画布背景色bgcolor()。
(3)确定起点位置。
3. 画笔的设置。
(1)画笔的大小,颜色。
(2)画笔运行属性。
二、定义画布参数
import turtle as tt.screensize(width = None,heigh = None,bg = None) #以像素为单位,参数分别为画布的宽,高,背景色t.screensize() #返回默认大小(400,300)t.Screen() #也是表示默认画布大小,注意S大写t.setup(w=0.5,h=0.75,startx=None,starty=None) #w,h为整数是表示像素,为小数时表示占据电脑屏幕的比例#startx,starty坐标表示矩形窗口左上角顶点的位置,默认为屏幕中心位置
三、定义画笔
1、画笔的状态
在画布上默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向),turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2、画笔的属性
画笔(画笔的属性,颜色、画线的宽度)
(1)turtle.pensize():设置画笔的宽度;
(2)turtle.pencolor():没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green","red",也可以是RGB 3元组;
>>> pencolor('brown')>>> tup = (0.2, 0.8, 0.55)>>> pencolor(tup)>>> pencolor()'#33cc8c'
(3)turtle.speed(speed):设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
相关推荐:《Python入门教程》
3、绘图命令
操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令。
(1)画笔运动命令:
(2)画笔控制命令:
(3)全局控制命令:
四、命令详解
turtle.circle(radius, extent=None, steps=None)
描述:以给定半径画圆
参数:
radius(半径);半径为正(负),表示圆心在画笔的左边(右边)画圆;
extent(弧度) (optional);
steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps);
举例:
circle(50) # 整圆;circle(50,steps=3) # 三角形;circle(120, 180) # 半圆
五、绘图举例
(1)菱形太阳花
import turtle as t #turtle库是python的内部库,直接import使用即可def draw_diamond(turt):for i in range(1,3):turt.forward(100) #向前走100步
希望我的回答对你有帮助
如何用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()函数吧,毕竟它是专门绘制这种类型图的,简单好用。
然而实际工作中对于条形图的需求不只是这些,比如例子中只是对各个学校语文成绩的展示,有时候需要各个学科的成绩同时展现在一幅条形图中,有时候也需要绘制堆积条形图对各学科的成绩以及总成绩进行展示,这些图又该如何绘制呢?其实只要理解了各个参数的含义,绘制这些图也不在话下,至于具体怎么画,且看下回分解啊!
# encoding: utf-8
# Python 3.9.0
# turtle画出不同颜色的同心环/同心圆
import turtle
pen=turtle.Turtle()
n=100
colors=['#0000FF','#FF0000','#FFD700','#008000','#800080']
for i in range(5):
pen.fillcolor(colors[i])
pen.begin_fill()
pen.penup()
pen.goto(0,20*(i+1))
pen.pendown()
pen.circle(n-i*20)
pen.end_fill()
turtle.done()
427定南县:请问怎么用python画出这样的图?
孙妹13613503874:encoding: utf-8# Python 3.9.0# turtle画出不同颜色的同心环\/同心圆import turtlepen=turtle.Turtle()n=100colors=['#0000FF','#FF0000','#FFD700','#008000','#800080']for i in range(5): pen.fillcolor(colors[i]) pen.begin_fill() pen.penup() pen.goto(0,20*(i+1)) pen.pendown() pen.circle(n-i*20)...
427定南县:如何用python画浪漫的星空呢?
孙妹13613503874:1、首先运行软件之后,输入画布大小和背景颜色代码,定义星星函数。2、然后输入星星代码,如下图所示。3、接着输入下述代码。4、最后输入显示画布代码,进入循环就完成了。使用python的注意事项 1、版本兼容性:Python有不同的版本,如Python 2和Python 3。确保你的代码与你使用的Python版本兼容,以避免出...
427定南县:python用名字画爱心
孙妹13613503874:导入Turtle库:首先,我们需要导入Turtle库,并创建一个Turtle对象,这个对象将作为我们的画笔。设置画笔属性:我们可以设置画笔的颜色、速度等属性,以便绘制出更加美观的图形。绘制爱心形状:使用Turtle库的绘图命令,如forward()、right()、left()等,我们可以绘制出一个爱心形状。这个过程可能需要一些数学知...
427定南县:Python如何画个正六边形,再画一个最小的外接圆和一个最大内接圆?_百度...
孙妹13613503874:首先创建画布和画笔,然后使用循环画正六边形。接着根据正六边形的外接圆半径公式 $R = \\frac{a}{\\sin{(\\frac{\\pi}{n})}}$,计算出正六边形的外接圆半径 r1。将画笔移动到圆心,画最小外接圆。再根据正六边形的内切圆半径公式 $r = \\frac{a\\sqrt{3}}{3}$,计算出正六边形的内接圆半径 r2。
427定南县:怎么用python的turtle库画出这个图案,要代码?
孙妹13613503874:t.begin_fill()t.color(color)t.forward(100)t.left(36)t.forward(100)t.left(36*4)t.forward(100)t.left(36)t.forward(100)t.end_fill()t.left(36*3)for i in range(10):if i%2:quad('#99c8de')else:quad('#e5b9c4')两三年没碰海龟了,觉得没啥用,看你赏金又提了就回去...
427定南县:用python画正五边形的代码?
孙妹13613503874:以下是使用 Python 的 turtle 图形模块绘制常规五边形的一种方法:此代码创建一只从屏幕底部中心开始的,然后绘制边长为 200 个单位的常规五边形。它将在每条边后旋转 72 度,这是绘制常规五边形所需的角度。最后,该命令会阻止窗口自动关闭。turtle.done()回答不易望请采纳 ...
427定南县:Python绘图篇——Turle库绘制经典文学名著《小王子》
孙妹13613503874:探索Python艺术:Turtle绘出《小王子》的奇幻之旅 让我们进入一个充满创意的编程世界,用Python的Turtle库,为经典文学名著《小王子》绘制独特的视觉诠释。在64位Windows系统(通过"此电脑"属性查看)上,搭配Python 3.x(PyCharm 2020.1版)的友好界面,我们将一步步解锁绘图的无限可能。Turtle,如同它的...
427定南县:python的爱心代码教程(python画爱心代码)
孙妹13613503874:python爱心代码怎么变成网页1、首先在python中输入爱心代码链接。2、其次然后重命名将txt文件修改。3、最后点击文件就能运作变成网页。如何利用python画一个爱心1fromturtleimport*2defcurvemove():#这个函数是为了绘制爱心上方的曲线3foriinrange(200):4right(1)5fd(1)67pensize(2)#调整画笔粗细8speed(...
427定南县:八卦图python实现
孙妹13613503874:八卦图可以使用Python的Turtle模块或matplotlib和numpy库来实现。使用Turtle模块绘制八卦图设置画布:首先,我们需要设置Turtle的画布尺寸和背景颜色,为绘制八卦图提供一个合适的空间。绘制太极图:接着,我们可以开始绘制太极图的部分,包括黑色与白色部分。这通常是通过Turtle的圆弧绘制功能,结合不同的半径和...
427定南县:python怎么画这个图?
孙妹13613503874:记住一个中点,然后移动 m 距离画一个圆 然后回中点,旋转角度在进行再移动 m 距离 画一个圆 就这样反复进行 记得旋转的角度必须是能被360整除的数,角度越小,画就越密集
