python编程——绘制创意图(pecharts、turtle)
引⾔
Python常⽤的绘图⼯具包括:matplotlib, seaborn, plotly等,以及⼀些其他专⽤于绘制某类图如词云图等的包,描绘绘图轨迹的turtle包等。
1 turtle绘制奥运五环图
turtle绘图的函数⾮常好⽤,基本看到函数名字就能知道含义,下⾯使⽤turtle来绘制奥运五环图。
1 导⼊库
import turtle as p
2 定义画圆函数
def drawCircle(x,y,c='red'):
p.pu()# 抬起画笔
<(x,y)# 绘制圆的起始位置
p.pd()# 放下画笔
p.circle(30,360)#绘制圆:半径,⾓度
3 画笔基本设置
p.pensize(3)# 画笔尺⼨设置3
4 绘制五环图调⽤画圆函数
drawCircle(0,0,'blue')
drawCircle(60,0,'black')
drawCircle(120,0,'red')
drawCircle(90,-30,'green')
drawCircle(30,-30,'yellow')
p.done()
结果
2 turtle绘制漫天雪花
导⼊模块
导⼊ turtle库和 python的 random
import turtle as p
import random
绘制雪花
def snow(snow_count):
p.hideturtle()
p.speed(500)
p.pensize(2)
for i in range(snow_count):
r = random.random()
g = random.random()
b = random.random()
p.pencolor(r, g, b)
p.pu()
<(random.randint(-350,350), random.randint(1,270))
p.pd()
dens = random.randint(8,12)
snowsize = random.randint(10,14)
for _ in range(dens):
p.forward(snowsize)# 向当前画笔⽅向移动snowsize像素长度
p.backward(snowsize)# 向当前画笔反⽅向移动snowsize像素长度
p.right(360/ dens)# 顺时针移动360 / dens度
绘制地⾯
def ground(ground_line_count):
p.hideturtle()
p.speed(500)
for i in range(ground_line_count):
p.pensize(random.randint(5,10))
x = random.randint(-400,350)
y = random.randint(-280,-1)
r =-y /280
g =-y /280
b =-y /280
p.pencolor(r, g, b)
p.penup()# 抬起画笔
<(x, y)# 让画笔移动到此位置
p.pendown()# 放下画笔
p.forward(random.randint(40,100))# 眼当前画笔⽅向向前移动40~100距离主函数
def main():
p.setup(800,600,0,0)
# p.tracer(False)
p.bgcolor("black")
snow(30)
ground(30)
# p.tracer(True)
p.mainloop()
##运⾏
if __name__=="__main__":
main()
动态图结果展⽰:
3 wordcloud词云图
import hashlib
import pandas as pd
from wordcloud import WordCloud
geo_ad_excel(r"../data/geo_data.xlsx")
print(geo_data)
# 0 深圳 1 深圳 2 深圳 3 深圳 4 深圳 5 深圳
# 6 深圳 7 ⼴州 8 ⼴州 9 ⼴州
words =','.join(x for x in geo_data['city']if x !=[])#筛选出⾮空列表值wc = WordCloud(random python
background_color="green",#背景颜⾊"green"绿⾊
max_words=100,#显⽰最⼤词数
font_path='./f',#显⽰中⽂
min_font_size=5,
max_font_size=100,
width=500#图幅宽度 )
x = wc.generate(words)
<_file('../data/geo_data.png')
测试结果:
4 pyecharts词云图
from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType
words =[("Python",100),("C++",80),("Java",95),("R",50), ("JavaScript",79),("C",65)]
def wordcloud()-> WordCloud:
c =(WordCloud()
# word_size_range: 单词字体⼤⼩范围
.add("", words, word_size_range=[20,100], shape='cardioid')
.set_global_opts(title_opts=opts.TitleOpts(title="WordCloud"))) return c
wordcloud().render('./img/wordcloud.html')
("C",65)表⽰在本次统计中C语⾔出现65次
pyecharts绘制仪表盘
pyecharts绘制仪表盘,只需要⼏⾏代码:
from pyecharts import charts
# 仪表盘
gauge = charts.Gauge()
gauge.add('Python⼩例⼦',[('Python机器学习',30),('Python基础',70.),
('Python正则',90)])
print('ok')
pyecharts⽔球图
from pyecharts import options as opts
from pyecharts.charts import Liquid, Page
from pyecharts.globals import SymbolType
def liquid()-> Liquid:
c =(
Liquid()
.add("lq",[0.67,0.30,0.15])
.set_global_opts(title_opts=opts.TitleOpts(title="Liquid"))
)
return c
liquid().render('./img/liquid.html')
⽔球图的取值[0.67, 0.30, 0.15]表⽰下图中的三个波浪线,⼀般代表三个百分⽐:
备注,⽔球和仪表盘的代码还没调试通,报错,from pyecharts import options as opts ImportError: ca
nnot import name ‘options’,怎么调试通,恳请⼤佬赐教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论