导航:首页 > 编程语言 > 用python画一阶科赫曲线

用python画一阶科赫曲线

发布时间:2022-07-24 14:25:58

① 怎么用python中的turtle画希尔伯特曲线

代码如下:
import sys, math, time
import turtle
count = 0
def moveto(x,y):
turtle.penup()
turtle.goto(x,y)
turtle.pendown()
def hilbert(x0, y0, xi, xk, yi, yk, n):
if n <= 0:
X = x0 + (xi + yi)/2
Y = y0 + (xk + yk)/2
X2 = X * 600 -300
Y2 = Y * 600 -300
global count
if count < 1:
count = count + 1
moveto(X2,Y2)
turtle.color(X,Y,X*Y)
turtle.goto(X2,Y2)
else:
hilbert(x0, y0, yi/2, yk/2, xi/2, xk/2, n - 1)
hilbert(x0 + xi/2, y0 + xk/2, xi/2, xk/2, yi/2, yk/2, n - 1)
hilbert(x0 + xi/2 + yi/2, y0 + xk/2 + yk/2, xi/2, xk/2, yi/2, yk/2, n - 1)
hilbert(x0 + xi/2 + yi, y0 + xk/2 + yk, -yi/2,-yk/2,-xi/2,-xk/2, n - 1)

def main():
turtle.colormode(1.)
turtle.speed(0)
for depth in range(9):
if 7 > depth > 4: # for faster rendering.
turtle.getscreen().tracer(0)
global count
count = 0
hilbert(0.0, 0.0, 1.0, 0.0, 0.0, 1.0, depth)
turtle.getscreen().tracer(1)
time.sleep(2)
turtle.Screen().exitonclick()

if __name__ == "__main__":
main()

② python的turtle怎么画曲线

turtle.circle()画圆

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

③ python语言,利用递归绘制彩色四阶五边形科赫雪花,并上传代码和科赫雪花效果图

import random

import turtle


def random_color():

rgbl=[255,0,0]

random.shuffle(rgbl)

return tuple(rgbl)


def koch(size,n):

if n==0:

turtle.fd(size)

else:

for angle in [0,60,-120,60]:

cc = random_color()

turtle.pencolor(cc[0], cc[1], cc[2])

turtle.left(angle)

koch(size/3,n-1)

def main():

turtle.colormode(255)

turtle.setup(600,600)

turtle.penup()

turtle.goto(-200,100)

turtle.pendown()

turtle.pensize(2)

level=4 #4阶科赫雪花,阶数

koch(400,level)

turtle.right(120)

koch(400,level)

turtle.right(120)

koch(400,level)

turtle.hideturtle()

turtle.done()

main()


效果如图:

④ 如何用python turtle画斐波那契螺旋曲线

我把矩形和圆弧都用不同颜色填充了,你按照自己的需求修改一下吧,你的题目说的不清楚。

#Python3.6
#使用turtle绘制Fibonacci螺旋
defdraw_fibonacci(x):
#F0=1
#F1=1
#Fn=F(n-1)+F(n-2)

#产生斐波那契数列,用于查表
#像这种计算复杂性指数增长的计算,不要写个函数去每次求一个数
#最好的办法是,按照规律写出查找表,用查找的方法来得到数据
f_list=[]
foriinrange(x):
ifi==0:
f_list.append(1)
elifi==1:
f_list.append(1)
else:
f_list.append(f_list[i-1]+f_list[i-2])

#像素比例
f0=50

#设置画笔属性
turtle.pensize(5)
turtle.pencolor("black")
turtle.penup()
turtle.home()
turtle.pendown()

foriinrange(0,len(f_list)):
#绘制速度,1~10个不同速度等级,小于1或者大于10立即绘制
turtle.speed(1)
turtle.pendown()

#绘制矩形
ifi==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)
ifi==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)

下面是我跑出来的结果:

⑤ python 怎么画与其他方法进行比较的ROC曲线

使用sklearn的一系列方法后可以很方便的绘制处ROC曲线,这里简单实现以下。
主要是利用混淆矩阵中的知识作为绘制的数据(如果不是很懂可以先看看这里的基础):

tpr(Ture Positive Rate):真阳率 图像的纵坐标

fpr(False Positive Rate):阳率(伪阳率) 图像的横坐标

mean_tpr:累计真阳率求平均值

mean_fpr:累计阳率求平均值

import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm, datasets
from sklearn.metrics import roc_curve, auc
from sklearn.model_selection import StratifiedKFold

iris = datasets.load_iris()
X = iris.data
y = iris.target
X, y = X[y != 2], y[y != 2] # 去掉了label为2,label只能二分,才可以。
n_samples, n_features = X.shape
# 增加噪声特征
random_state = np.random.RandomState(0)
X = np.c_[X, random_state.randn(n_samples, 200 * n_features)]

cv = StratifiedKFold(n_splits=6) #导入该模型,后面将数据划分6份
classifier = svm.SVC(kernel='linear', probability=True,random_state=random_state) # SVC模型 可以换作AdaBoost模型试试

# 画平均ROC曲线的两个参数
mean_tpr = 0.0 # 用来记录画平均ROC曲线的信息
mean_fpr = np.linspace(0, 1, 100)
cnt = 0
for i, (train, test) in enumerate(cv.split(X,y)): #利用模型划分数据集和目标变量 为一一对应的下标
cnt +=1
probas_ = classifier.fit(X[train], y[train]).predict_proba(X[test]) # 训练模型后预测每条样本得到两种结果的概率
fpr, tpr, thresholds = roc_curve(y[test], probas_[:, 1]) # 该函数得到伪正例、真正例、阈值,这里只使用前两个

mean_tpr += np.interp(mean_fpr, fpr, tpr) # 插值函数 interp(x坐标,每次x增加距离,y坐标) 累计每次循环的总值后面求平均值
mean_tpr[0] = 0.0 # 将第一个真正例=0 以0为起点

roc_auc = auc(fpr, tpr) # 求auc面积
plt.plot(fpr, tpr, lw=1, label='ROC fold {0:.2f} (area = {1:.2f})'.format(i, roc_auc)) # 画出当前分割数据的ROC曲线

plt.plot([0, 1], [0, 1], '--', color=(0.6, 0.6, 0.6), label='Luck') # 画对角线

mean_tpr /= cnt # 求数组的平均值
mean_tpr[-1] = 1.0 # 坐标最后一个点为(1,1) 以1为终点
mean_auc = auc(mean_fpr, mean_tpr)

plt.plot(mean_fpr, mean_tpr, 'k--',label='Mean ROC (area = {0:.2f})'.format(mean_auc), lw=2)

plt.xlim([-0.05, 1.05]) # 设置x、y轴的上下限,设置宽一点,以免和边缘重合,可以更好的观察图像的整体
plt.ylim([-0.05, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate') # 可以使用中文,但需要导入一些库即字体
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()

⑥ 用python的 turtle 怎么画这个曲线

urtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图。turtle名称含义...

CSDN技术社区

⑦ Python画koch曲线如何填充颜色

#很简单啦,不废话直接贴代码了,我知道你喜欢这样

fromturtleimport*

defsnowflake(lengthSide,levels):
iflevels==0:
forward(lengthSide)
return
lengthSide/=3.0
snowflake(lengthSide,levels-1)
left(60)
snowflake(lengthSide,levels-1)
right(120)
snowflake(lengthSide,levels-1)
left(60)
snowflake(lengthSide,levels-1)

deffull_snowflake(lengthside,levels):
foriinrange(3):
snowflake(lengthside,levels)
right(120)

if__name__=="__main__":
speed(0)
length=300.0
begin_fill()
fillcolor('green')
penup()
backward(length/2.0)
pendown()
full_snowflake(length,4)
begin_fill()
end_fill()
阅读全文

与用python画一阶科赫曲线相关的资料

热点内容
进入组策略的命令 浏览:137
python数据结构和内存 浏览:25
python软件功能简介 浏览:784
外国程序员一般多少岁退休 浏览:917
怎么看linux和时间服务器 浏览:680
程序员搞笑花名 浏览:501
dota2怎么设置国服服务器地址 浏览:212
单片机高电平驱动 浏览:115
ios多选文件夹 浏览:909
加强行车调度命令管理 浏览:243
服务器已禁用什么意思 浏览:150
部队命令回复 浏览:755
神奇宝贝服务器地图怎么设置 浏览:382
加密算法输出固定长度 浏览:862
程序员去重庆还是武汉 浏览:121
服务器如何撤销网页登录限制 浏览:980
微信公众平台php开发视频教程 浏览:628
怎么看苹果授权绑定的app 浏览:255
压缩机单级压缩比 浏览:380
linux测试php 浏览:971