import turtle //导入模块
import time
import os
def draw_square(org_x, org_y, x, y): //定义红旗绘制函数
turtle.setpos(org_x, org_y) //定义画笔初始位置
turtle.color('red', 'red') //颜色
turtle.begin_fill() //开始绘制
turtle.fd(x) //绘制偏转方向和角度
turtle.lt(90)
turtle.fd(y)
turtle.lt(90)
turtle.fd(x)
turtle.lt(90)
turtle.fd(y)
turtle.end_fill() //绘制结束
def draw_star(center_x, center_y, radius): //定义星星绘制函数
print(center_x, center_y) //显示位置
turtle.pencolor('black') //画笔轨迹颜色
turtle.setpos(center_x, center_y) //中心点位置
pt1 = turtle.pos() //偏转角度计算
turtle.circle(-radius, 360 / 5)
pt2 = turtle.pos()
turtle.circle(-radius, 360 / 5)
pt3 = turtle.pos()
turtle.circle(-radius, 360 / 5)
pt4 = turtle.pos()
turtle.circle(-radius, 360 / 5)
pt5 = turtle.pos()
turtle.color('yellow', 'yellow') //星星颜色
turtle.begin_fill() //开是绘制
turtle.goto(pt3)
turtle.goto(pt1)
turtle.goto(pt4)
turtle.goto(pt2)
turtle.goto(pt5)
turtle.end_fill() //绘制结束
print(turtle.pos())
turtle.pu() //隐藏画笔轨迹
draw_square(-320, -260, 660, 440) //绘制红旗
star_part_x = -320 //自定义星星大小等属性
star_part_y = -260 + 440
star_part_s = 660 / 30
center_x, center_y = star_part_x + star_part_s * 5, star_part_y - star_part_s * 5 //计算星星中心点位置
turtle.setpos(center_x, center_y)
turtle.lt(90)
draw_star(star_part_x + star_part_s * 5, star_part_y - star_part_s * 2, star_part_s * 3) //绘制星星
turtle.goto(star_part_x + star_part_s * 10, star_part_y - star_part_s * 2) //同上
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.goto(star_part_x + star_part_s * 12, star_part_y - star_part_s * 4)
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.goto(star_part_x + star_part_s * 12, star_part_y - star_part_s * 7)
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.goto(star_part_x + star_part_s * 10, star_part_y - star_part_s * 9)
turtle.lt(round(turtle.towards(center_x, center_y)) - turtle.heading())
turtle.fd(star_part_s)
turtle.rt(90)
draw_star(turtle.xcor(), turtle.ycor(), star_part_s)
turtle.ht()
time.sleep(5) //设置挂起时间
os._exit(1)
用Python画图
今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?
搜索之后发现,它会弹出一个对话框,然后就开始画了,比如下图
第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库,这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了。
它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:
(200)
(170)
第一个命令是移动200个单位并画出来轨迹
第二个命令是画笔顺时针转170度,注意此时并没有移动,只是转角度
然后呢?循环重复就画出来这个图了
好玩吧。
有需要仔细研究的可以看下这篇文章
,这个牛人最后用这个库画个移动的钟表,太赞了。
Turtle虽好玩,但是我想要的是我给定数据,然后让它画图,这里就找到另一个常用的画图的库了。
Matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表。
使用起来也挺简单,
首先importasplt_既牖嫉耐肌
然后给定x和y,用这个命令(x,y)就能画图了,接着用()就可以把图形展示出来。
接着就是各种完善,比如加标题,设定x轴和y轴标签,范围,颜色,网格等等,在
这篇文章里介绍的很详细。
现在互联网的好处就是你需要什么内容,基本上都能搜索出来,而且还是免费的。
我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?
***设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:
这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'],那我只要使用如下命令
(df['time'],df['ini'])
()
就能得到如下图:
自己画的是不是很香,哈哈!
然后呢,我在上篇文章
中介绍过求Ahr999指数,那可不可以也放到这张图中呢?不就是加一条命令嘛
(df['time'],df['Ahr999'])
图形如下:
但是,Ahr999指数怎么就一条线不动啊,_戳礁_轴不一致,显示出来太怪了,需要用多Y轴,问题来了。
继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制
fig=()#多图
ax1=_subplot(111)
(df['time'],df['ini'],label="BTCprice")#_嬷频谝桓鐾急忍乇壹鄹
_ylabel('BTCprice')#_由媳昵
#第二个直接对称就行了
ax2=()#_谟冶咴黾右桓_轴
(df['time'],df['Ahr999'],'r',label="ahr999")_#_嬷频诙鐾_hr999指数,红色
_ylim([0,50])#设定第二个Y轴范围
_ylabel('ahr999')
(color="k",linestyle=":")#网格
(loc="center")#图例
()
跑起来看看效果,虽然丑了点,但终于跑通了。
这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。
用Python画图今天开始琢磨用Python画图,没使用之前是一脸懵的,我使用的开发环境是Pycharm,这个输出的是一行行命令,这个图画在哪里呢?
搜索之后发现,它会弹出一个对话框,然后就开始画了,比如下图
第一个常用的库是Turtle,它是Python语言中一个很流行的绘制图像的函数库,这个词的意思就是乌龟,你可以想象下一个小乌龟在一个x和y轴的平面坐标系里,从原点开始根据指令控制,爬行出来就是绘制的图形了。
它最常用的指令就是旋转和移动,比如画个圆,就是绕着圆心移动;再比如上图这个怎么画呢,其实主要就两个命令:
(200)
(170)
第一个命令是移动200个单位并画出来轨迹
第二个命令是画笔顺时针转170度,注意此时并没有移动,只是转角度
然后呢?循环重复就画出来这个图了
好玩吧。
有需要仔细研究的可以看下这篇文章
,这个牛人最后用这个库画个移动的钟表,太赞了。
Turtle虽好玩,但是我想要的是我给定数据,然后让它画图,这里就找到另一个常用的画图的库了。
Matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。其中,matplotlib的pyplot模块一般是最常用的,可以方便用户快速绘制二维图表。
使用起来也挺简单,
首先importasplt_既牖嫉耐肌
然后给定x和y,用这个命令(x,y)就能画图了,接着用()就可以把图形展示出来。
接着就是各种完善,比如加标题,设定x轴和y轴标签,范围,颜色,网格等等,在
这篇文章里介绍的很详细。
现在互联网的好处就是你需要什么内容,基本上都能搜索出来,而且还是免费的。
我为什么要研究这个呢?当然是为了用,比如我把比特币的曲线自己画出来可好?
***设现在有个数据csv文件,一列是日期,另一列是比特币的价格,那用这个命令画下:
这两列数据读到pandas中,日期为df['time']列,比特币价格为df['ini'],那我只要使用如下命令
(df['time'],df['ini'])
()
就能得到如下图:
自己画的是不是很香,哈哈!
然后呢,我在上篇文章
中介绍过求Ahr999指数,那可不可以也放到这张图中呢?不就是加一条命令嘛
(df['time'],df['Ahr999'])
图形如下:
但是,Ahr999指数怎么就一条线不动啊,_戳礁_轴不一致,显示出来太怪了,需要用多Y轴,问题来了。
继续谷歌一下,把第二个Y轴放右边就行了,不过呢得使用多图,重新绘制
fig=()#多图
ax1=_subplot(111)
(df['time'],df['ini'],label="BTCprice")#_嬷频谝桓鐾急忍乇壹鄹
_ylabel('BTCprice')#_由媳昵
#第二个直接对称就行了
ax2=()#_谟冶咴黾右桓_轴
(df['time'],df['Ahr999'],'r',label="ahr999")_#_嬷频诙鐾_hr999指数,红色
_ylim([0,50])#设定第二个Y轴范围
_ylabel('ahr999')
(color="k",linestyle=":")#网格
(loc="center")#图例
()
跑起来看看效果,虽然丑了点,但终于跑通了。
这样就可以把所有指数都绘制到一张图中,等等,三个甚至多个Y轴怎么加?这又是一个问题,留给爱思考爱学习的你。
有了自己的数据,建立自己的各个指数,然后再放到图形界面中,同时针对异常情况再自动进行提醒,比如要抄底了,要卖出了,用程序做出自己的晴雨表。
怎么用python画一个三边三种颜色的等腰直角三角形啊?你可以使用Python中的matplotlib库来画图。以下是一个画等腰直角三角形的示例代码,其中三边分别用不同颜色表示。
importasplt
#定义三角形的三个顶点
x=[0,0,3]
y=[0,3,0]
#用plot函数画出三角形的三条边,分别用不同颜色表示
([x[0],x[1]],[y[0],y[1]],color='red')
([x[1],x[2]],[y[1],y[2]],color='green')
([x[2],x[0]],[y[2],y[0]],color='blue')
#设置坐标轴范围
(-1,4)
(-1,4)
#显示图形
()
这段代码会画出一个三边三种颜色的等腰直角三角形,其中红色表示直角边,绿色和蓝色分别表示两个等边。你可以根据需要修改顶点坐标和颜色来画出不同的三角形。
#例题1绘制一个四叶草
import turtle
turtle.color("green","green")
turtle.setheading(90)
turtle.begin_fill()
for i in range(4):
turtle.circle(-100,180)
turtle.left(90)
turtle.end_fill()
turtle.done()
#例题2绘制一个四角星
import turtle
turtle.color("yellow","yellow")
turtle.begin_fill()
for i in range(4):
turtle.circle(100,90)
turtle.right(180)
turtle.end_fill()
turtle.done()
#例题3绘制一个四叶花瓣
import turtle
turtle.color("pink","pink")
turtle.begin_fill()
turtle.circle(-100,90)
turtle.right(90)
turtle.circle(-100,90)
turtle.circle(100, 90)
turtle.right(90)
turtle.circle(-100, -90)
turtle.right(90)
turtle.circle(-100, 90)
turtle.right(90)
turtle.circle(-100, 90)
turtle.circle(100, 90)
turtle.right(90)
turtle.circle(-100, -90)
turtle.end_fill()
turtle.done()
#例题4输入一个数字,绘制以该数字为边数的正多边形
import turtle
a=int(turtle.textinput("绘制正多边形","请输入边数:"))
turtle.circle(100,360,a)
turtle.done()
这里以python为例,简单介绍一下python可以做哪些有趣的东西,主要内容如下:
1.一键下载腾讯、优酷、哔哩哔哩等主流***网站的***,这里主要用到you-get这个包,下面我简单介绍一下这个包的安装和使用:
安装you-get,这里直接在cmd窗口输入命令“pipinstallyou-get”就行,如下:
安装成功后,我们就可以直接利用you-get来下载***了,只需要传入***链接地址(you-get***地址),就能完成***的下载,这里以下载腾讯***为例,如下:
下载哔哩哔哩***:
***成功下载后,会保存在当前目录下边,如下:
双击***,可以正常播放,如下:
2.绘制小猪佩奇,这里主要用到python自带的turtle库,turtle库是python一个非常流行的绘图函数库,基于tkinter,用户可以根据自己需求,绘制出想要的图形,如下,一个可爱的小猪佩奇:
这里可以参考zhaogeno1/article/details/80298669这个教程,介绍的很详细。
3.绘制词云图,这里主要用到wordcloud这个包,绘制出来的漂亮、美观、高大上,下面我简单介绍一下这个包的安装和使用:
安装wordcloud,这里直接在cmd窗口输入命令“pipinstallwordcloud”就行:
安装完成后,我们就可以进行简单的测试了,这里以官方自带的示例a_new_hope.py为例,程序截图如下:
效果截图如下,看着很不错吧:
目前,就介绍这3个有趣的示例吧,当然,还有许多其他有趣的东西,感兴趣的话,可以到网上搜一下,自己尝试一下,欢迎大家评论留言,分享经验和有趣的实验,希望以上分享的内容能对你有所帮助吧。
canva绘制海报01:canvas绘制并解决导出后略模糊问题
另外,
img标签和js中的image都建议增加crossorigin="anonymous"属性
**注意:**有部分网友评论('crossOrigin','anonymous')必须是写在你赋值之前,所以楼主写法有误可以看看这个链接去看看,#27260385
效果图如下:
模糊在线demo
解决方案:
1.首先一样,获取Canvas对象:
2.获取像素比,将Canvas宽高进行放大,放大比例为:devicePixelRatio/webkitBackingStorePixelRatio,我们写了一个兼容的方法。
3.按实际渲染倍率来缩放canvas。
注意基础知识点:
要设置canvas的画布大小,使用的是和;
要设置画布的实际渲染大小,使用的style属性或CSS设置的width和height,只是简单的对画布进行缩放。
4.绘制
效果图如下
优化后不模糊的在线demo
参考链接:
一个关于image访问跨域的问题,
解决canvas将转为base64报错:UncaughtDOMException:Failedtoexecute'toDataURL'on'HTMLCanvasElement':Taintedcanvase***aynotbeexported,
解决canvas在***屏中绘制模糊的问题,
如何用python画五一海报要用Python画五一海报,需要用到Python的绘图库,比如matplotlib、Pillow等。以下是一个简单的例子,演示如何使用Python和Pillow库来制作五一海报:
fromPILimportImage,ImageDraw,ImageFont
#创建一个空白的画布,大小为800x600,背景色为白色
canvas=('RGB',(800,600),(255,255,255))
#在画布上添加五一节日祝福语
font=('',48)#设置字体样式和大小
draw=(canvas)
((200,100),'五一快乐!',fill=(0,0,0),font=font)#设置文字位置、颜色和字体
#在画布上添加五星红旗图案
flag=('')#读取五星红旗
flag=((200,133))#设置大小为200x133
(flag,(300,300))#将粘贴到画布上
#保存并展示画布
('')
()
在这个例子中,我们首先使用Pillow库创建了一个800x600大小的空白画布,并在画布上添加了五一节日祝福语和五星红旗图案。最后使用s***e()方法将画布保存为PNG格式的,并使用show()方法展示。在实际操作中,您需要根据自己的需求来修改代码,比如更换祝福语、调整字体大小和颜色、更换等。
canvas是什么软件品牌型号:华为MateBookD15
系统:Windows11
canvas是一款矢量绘图软件。是一款支持多平台(网页端、iPhone、iPAD及Android端)的在线平面设计工具。
Canva提供丰富的版权、原创插画以及各类优质设计模板。用户可以在选择喜欢的模板之后,通过简单修改即可在几分钟内创建出海报、简历、Banner、名片等各类设计。
软件的程序能够无缝集成用于绘画、图像编辑和Web设计的等工具,软件能够以多种的格式(包括动画和Web就绪文件)导出绘画作品,它在剪辑图库上捆绑了许多的用于位图编辑、展示、Web图形和矢量图绘制的工具,由于canvas无缝集成了用于矢量插图、图像编辑和Web出版的功能,因此堪称为极品,受到了大量用户的喜欢。
我把矩形和圆弧都用不同颜色填充了,你按照自己的需求修改一下吧,你的题目说的不清楚。
#?Python3.6#?使用turtle绘制Fibonacci螺旋
def?draw_fibonacci(x):
#?F0=1
#?F1=1
#?Fn=F(n-1)+F(n-2)
#?产生斐波那契数列,用于查表
#?像这种计算复杂性指数增长的计算,不要写个函数去每次求一个数
#?最好的办法是,按照规律写出查找表,用查找的方法来得到数据
f_list?=?[]
for?i?in?range(x):
if?i?==?0:
f_list.***end(1)
elif?i?==?1:
f_list.***end(1)
else:
f_list.***end(f_list[i-1]+f_list[i-2])
#?像素比例
f0?=?50
#?设置画笔属性
turtle.pensize(5)
turtle.pencolor("black")
turtle.penup()
turtle.home()
turtle.pendown()
for?i?in?range(0,?len(f_list)):
#?绘制速度,1~10个不同速度等级,小于1或者大于10立即绘制
turtle.speed(1)
turtle.pendown()
#?绘制矩形
if?i?==?0:
fill_color?=?"black"
else:
fill_color?=?(random.random(),?random.random(),?random.random())
turtle.fillcolor(fill_color)
turtle.begin_fill()
turtle.forward(f_list[i]*f0)
turtle.left(90)
turtle.forward(f_list[i]*f0)
turtle.left(90)
turtle.forward(f_list[i]*f0)
turtle.left(90)
turtle.forward(f_list[i]*f0)
turtle.left(90)
turtle.end_fill()
#?绘制圆弧
fill_color?=?(random.random(),?random.random(),?random.random())
turtle.fillcolor(fill_color)
if?i?==?0:
turtle.forward(f_list[i]?*?f0?/?2)
turtle.begin_fill()
turtle.circle(f_list[i]?*?f0?/?2,?360)
turtle.end_fill()
#?移动到一下起点
turtle.forward(f_list[i]?*?f0?/?2)
continue
else:
turtle.begin_fill()
turtle.circle(f_list[i]?*?f0,?90)
turtle.left(90)
turtle.forward(f_list[i]?*?f0)
turtle.left(90)
turtle.forward(f_list[i]?*?f0)
turtle.end_fill()
#?移动到一下起点
turtle.speed(0)
turtle.penup()
turtle.left(90)
turtle.forward(f_list[i]?*?f0)
turtle.left(90)
turtle.forward(f_list[i]?*?f0)
turtle.done()
if?__name__?==?"__main__":
draw_fibonacci(6)
下面是我跑出来的结果:
你可以使用numpy和matplotlab这两个库来实现的你功能。
你的图可以参考:
#?Ignore?the?passed?in?position.?This?has?the?effect?of?scaling?the?default
#?tick?locations.
s?=?str(100?*?y)
#?The?percent?symbol?needs?escaping?in?latex
if?matplotlib.rcParams['text.usetex']?==?True:
return?s?+?r'$\%$'
else:
return?s?+?'%'
x?=?randn(5000)
#?Make?a?normed?histogram.?It'll?be?multiplied?by?100?later.
plt.hist(x,?bins=50,?normed=True)
#?Create?the?formatter?using?the?function?to_percent.?This?multiplies?all?the
#?default?labels?by?100,?making?them?all?percentages
formatter?=?FuncFormatter(to_percent)
#?Set?the?formatter
plt.gca().yaxis.set_major_formatter(formatter)
plt.show()
最主要的就是x轴和y轴的处理,我按照对数算了一下你提供的数据,好像和这个图效果不一样。
如果解决了您的问题请***纳!
如果未解决请继续追问