python绘制奥运五环教案_用python绘制奥运五环
最近有些忙碌,今天终于有时间和大家聊一聊“python绘制奥运五环教案”的话题。如果你对这个话题还比较陌生,那么这篇文章就是为你而写的,让我们一起来探索其中的奥秘吧。
1.如何用python绘制简单条形?
2.Python中数据可视化的两个库!
3.Python中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中数据可视化的两个库!
1. 准备工作有朋友可能没用过 folium ,它其实就是 python 的一个专业绘制地图 的第三方库,所以在使用之前需要先安装它。
在安装完成之后,我们可以在 jupyterlab 进行演示如下:
对于上面的输出,其实是一个 可交互 的地图,支持放大缩写拖拽等等。
如果你想将输出存在本地,可以这样来:
可以看到本地就存了这个一个文件,浏览器打开就可以进行交互式操作了。
以上就是一个平平淡淡的过程......
2. 关于folium.Map()
在上一部分我们可以看到这个 map 玩意直接就是一个地图啦,这里我们就介绍一下它常用的几个参数。
参数可真多啊!!
以上是常用的一些参数,而最常用的莫过于 location 、 zoom_start 和 tiles 等。
内建地图样式 还有一下几种:
我们简单试下 location 和 zoo_start 参数:
可以看到清华大学校区
以上对 Map 的参数进行了简单的介绍,接下来,我们就来看看地图底图样式的选取情况吧~
3. 内建地图底图样式
我们看到 folium 其实有好几种内建地图底图样式,其中部分需要去申请 key ,由于我这边没有申请成功就不做演示了。
地势地形底图
黑白无标记底图
水墨画底图
以上就是内建地图底图样式的一些展示,部分需要key的大家可以去这个网站申请:
另外,在这里也可以找到一些地图底图
我后续也会去研究这些地图底图样式,试着分享更多有趣的地图分享给大家。
当然了,国内咱们用的较多的地图是高德、百度和腾讯地图等,接下来我们就来玩玩!
4. 多种第三方地图底图样式
这里我将演示高德地图、智图GeoQ和腾讯地图等
高德地图的 中英文地图、卫星影像图、街道图与常规图
中英文地图
纯英文地图
卫星影像图
街道图
常规图
反正我觉得这个蛮好的,用起来简单
多种风格地图,即拿即用
彩色版
暖色版
灰色版
蓝黑版
英文版
中国行政区划边界
水系专题
街道网图
暖色街道网图
需要注册一个key
天地图影像
天地图影像注记
天地图矢量
天地图矢量注记
天地图地形
天地图地形注记
百度地图我这边测试失败了,暂时没有找到合适的替换方案。
5. 补充
其实,我们还可以找更多的地图底图瓦片URL 来进行替换,多样化我们的地图绘制。
另外,大家在用经纬度坐标点进行地图绘制的时候,比如标记点、绘制区域、热力图绘制等等,需要考虑经纬度坐标是哪个地图系下面的,然后再用对应地图系的相关底图进行绘制才准确!
Python中Turtle模块的基本指令都有哪些
1. Matplotlib:是Python中众多数据可视化库的鼻祖,其设计风格与20世纪80年代的商业化程序语言MATLAB十分相似,具有很多强大且复杂的可视化功能;还包含了多种类型的API,可以采用多种方式绘制图标并对图标进行定制。
2. Seaborn:是基于Matplotlib进行高级封装的可视化库,支持交互式界面,使绘制图表功能变得简单,且图表的色彩更具吸引力。
3. ggplot:是基于Matplotlib并旨在以简单方式提高Matplotlib可视化感染力的库,采用叠加图层的形式绘制图形,比如先绘制坐标轴所在的图层,再绘制点所在的图层,最后绘制线所在的图层,但其并不适用于个性化定制图形。
4. Boken:是一个交互式的可视化库,支持使用Web浏览器展示,可使用快速简单的方式将大型数据集转换成高性能的、可交互的、结构简单的图表。
5. Pygal:是一个可缩放矢量图标库,用于生成可在浏览器中打开的SVG格式的图表,这种图表能够在不同比例的屏幕上自动缩放,方便用户交互。
6. Pyecharts:是一个生成ECharts的库,生成的ECharts凭借良好的交互性、精巧的设计得到了众多开发者的认可。
1、画布(canvas)turtle.screensize(700, 600, "green")
turtle.screensize() #返回默认大小(400, 300)
2、画笔控制命令:
turtle.down() #移动时绘制图形,缺省时也为绘制
turtle.up() #移动时不绘制图形
turtle.pensize(width) #绘制图形时的宽度
turtle.color(colorstring) #绘制图形时的颜色
turtle.fillcolor(colorstring) #绘制图形的填充颜色
turtle.fill(Ture)
turtle.fill(false)
3、运动命令:
turtle.forward(degree) #向前移动距离degree代表距离
turtle.backward(degree) #向后移动距离degree代表距离
turtle.right(degree) #向右移动多少度,角度
turtle.left(degree) #向左移动多少度
turtle.goto(x,y) #将画笔移动到坐标为x,y的位置
turtle.stamp() #复制当前图形
turtle.speed(speed) #画笔绘制的速度范围[0,10]整数
turtle.clear() 清空turtle画的笔迹
turtle.reset() 清空窗口,重置turtle状态为起始状态
turtle.undo()? 撤销上一个turtle动作
turtle.isvisible() 返回当前turtle是否可见
turtle.stamp()? 复制当前图形
turtle.write('vshmily') 写字符串'vshmily'
扩展资料:
在Python中,自定义模块有两个作用,一个是规范代码,另一个是方便其他程序使用的已经编写好的代码,从而提高开发效率。自定义模块主要分为两部分,一部分是创建模块,另一部分是导入模块。
创建模块可以将模块中相关的代码编写在一个单独的文件中,并且将该文件命名为“模块名+.py”的形式。
创建模块后,就可以在其他程序中使用该模块了,当加载模块时,可以使用import语句实现,语法格式为:import modulename [as alias]
好了,关于“python绘制奥运五环教案”的话题就到这里了。希望大家通过我的介绍对“python绘制奥运五环教案”有更全面、深入的认识,并且能够在今后的实践中更好地运用所学知识。