python绘制奥运五环代码_python画奥运五环代码turtle
我非常愿意为大家解答关于python绘制奥运五环代码的问题。这个问题集合包含了一些复杂而有趣的问题,我将尽力给出简明扼要的答案,并提供进一步的阅读材料供大家深入研究。
1.怎么用python的turtle库画出这个案,要代码?
2.使用 Python 地图绘制工具 -- folium 全攻略
3.如何用python绘制简单条形图?
怎么用python的turtle库画出这个案,要代码?
import turtle as tdef quad(color):
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')
两三年没碰海龟了,觉得没啥用,看你赏金又提了就回去学了学
使用 Python 地图绘制工具 -- folium 全攻略
import turtle
def kehe(long,n):
if n == 0:
turtle.fd(long)
else:
for angle in [0,90,-90,-90,90]:
turtle.left(angle)
kehe(long/2,n-1)
def main():
turtle.setup(600,600)
turtle.penup()
turtle.speed(0)
turtle.goto(-200,100)
turtle.pendown()
turtle.pensize(2)
level = 2
for i in range(4):
kehe(50,level)
turtle.right(90)
turtle.hideturtle()
main()
如何用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绘制简单条形图呢?这里离不开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绘制奥运五环代码”的话题就讲到这里了。希望大家能够通过我的介绍对“python绘制奥运五环代码”有更全面的认识,并且能够在今后的实践中更好地运用所学知识。如果您有任何问题或需要进一步的信息,请随时告诉我。