Ⅰ python怎麼根據數據生成圖像
網上有很多的字元畫,看起來很炫酷,下面就告訴你如何用Python做這么炫酷的事,
說下思路吧:
原圖->灰度->根據像素亮度-映射到指定的字元序列中->輸出。
字元越多,字元變化稠密。效果會更好。
如果根據灰度圖的像素亮度范圍製作字元畫,效果會更好。
如果再使用調色板,對字元進行改色,就更像原圖了。
這是原圖:
這是生成的字元畫:
廢話不多說,直接上代碼:
復制代碼 代碼如下:
import Image
chars =" ...',;:clodxkLO0DGEKNWMM"
fn=r'c:\users\liabc\desktop\jianbing.png'
f1=lambda
F:''.join([(k%100!=0) and m or m+'\n' for k,m in enumerate(apply(lambda
x:[chars[x[j,i]%len(chars)] for i in xrange(70) for j in
xrange(100)],(Image.open(F).resize((100,70)).convert("L").load(),)),1)])
f=open(r"c:\users\liabc\desktop\aface.txt","w")
f.write(f1(fn))
f.close()
Ⅱ python圖像處理代碼,望大神詳細解釋。越詳細越好
#初始化一個矩形np.max(marks)+1行,3列,默認值為0
colorTab=np.zeros((np.max(marks)+1,3))
#遍歷數組,給每行的3列賦值,就是RGB顏色值,8位的
foriinrange(len(colorTab)):
aa=np.random.uniform(0,255)
bb=np.random.uniform(0,255)
cc=np.random.uniform(0,255)
colorTab[i]=np.array([aa,bb,cc],np.uint8)
#初始化另一個跟img圖像形狀大小一樣的圖像,一副黑色圖像
bgrImage=np.zeros(img.shape,np.uint8)
#遍歷marks形狀的行列
foriinrange(marks.shape[0]):
forjinrange(marks.shape[1]):
index=marks[i][j]
#判斷是不是區域與區域之間的分界,如果是邊界(-1),則使用白色顯示
ifindex==-1:
bgrImage[i][j]=np.array([255,255,255])#像素點設置位白色
else:
bgrImage[i][j]=colorTab[index]#像素點設置位上邊隨機生成的顏色值
#顯示處理後的圖像圖像
cv2.imshow('AfterColorFill',bgrImage)
#總結,先生成一個跟marks相同數量的row*col的一張顏色表,然後創建一個跟marks相同大小的一副黑色圖像
#最後對黑色圖像畫出白色邊界和內部隨機彩色像素值
Ⅲ 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炫酷煙花表白源代碼是多少
學完本教程後,你也能做出這樣的煙花秀。
如上圖示,我們這里通過讓畫面上一個粒子分裂為X數量的粒子來模擬爆炸效果。粒子會發生"膨脹」,意思是它們會以恆速移動且相互之間的角度相等。這樣就能讓我們以一個向外膨脹的圓圈形式模擬出煙花綻放的畫面。
經過一定時間後,粒子會進入"自由落體」階段,也就是由於重力因素它們開始墜落到地面,仿若綻放後熄滅的煙花。
基本知識:用Python和Tkinter設計煙花。
這里不再一股腦把數學知識全丟出來,我們邊寫代碼邊說理論。首先,確保你安裝和導入了Tkinter,它是Python的標准GUI庫,廣泛應用於各種各樣的項目和程序開發,在Python中使用Tkinter可以快速的創建GUI應用程序。
import tkinter as tk
from PIL import Image, ImageTk
from time import time, sleep
from random import choice, uniform, randint
from math import sin, cos, radians
除了Tkinter之外,為了能讓界面有漂亮的背景,我們也導入PIL用於圖像處理,以及導入其它一些包,比如time,random和math。它們能讓我們更容易的控制煙花粒子的運動軌跡。
Tkinter應用的基本設置如下:
root = tk.Tk()
為了能初始化Tkinter,我們必須創建一個Tk()根部件(root widget),它是一個窗口,帶有標題欄和由窗口管理器提供的其它裝飾物。該根部件必須在我們創建其它小部件之前就創建完畢,而且只能有一個根部件。
w = tk.Label(root, text="Hello Tkinter!")
這一行代碼包含了Label部件。該Label調用中的第一個參數就是父窗口的名字,即我們這里用的"根」。關鍵字參數"text」指明顯示的文字內容。你也可以調用其它小部件:Button,Canvas等等。
w.pack()
root.mainloop()
接下來的這兩行代碼很重要。這里的打包方法是告訴Tkinter調整窗口大小以適應所用的小部件。窗口直到我們進入Tkinter事件循環,被root.mainloop()調用時才會出現。在我們關閉窗口前,腳本會一直在停留在事件循環。
將煙花綻放轉譯成代碼
現在我們設計一個對象,表示煙花事件中的每個粒子。每個粒子都會有一些重要的屬性,支配了它的外觀和移動狀況:大小,顏色,位置,速度等等。
Ⅳ 請問以下Python代碼(第一個圖)如何修改使其實現第二個圖中代碼的功能謝謝!
圖一的代碼應該會報錯吧;for 循環的c值是個字元串;不存在s[c]這種形式;可以改下:
n =s[int(c)]試試;
還有輸入的值如果不是0~9;不會經過while;那輸出的n就是輸入時的n
Ⅵ 求助編程大神,Python數據可視化,參考圖一部分代碼做出圖二的效果。
給你個例子
import numpy as np
import matplotlib.pyplot as plt
def bar2():
plt.rcParams['font.sans-serif'] = ['SimHei']
name = ["呂布","趙雲","典韋","關羽","馬超","張飛","夏侯惇","太史慈"]
x_index = np.arange(len(name))
width=0.35
OP=[99,96,96,93,93,92,90,89]
HP=[70,95,70,83,88,70,75,78]
plt.bar(x_index,OP,width=width,label="攻擊力")
plt.bar(x_index + width, HP, width=width, label="體力")
plt.xlabel("武將")
plt.ylabel("能力值")
plt.title("三國志武將分析")
plt.legend()
plt.xticks(ticks=x_index,labels=name)
plt.show()
bar2()
Ⅶ 求python代碼,可以表示這個圖形
importturtleast
colors=['red','orange','blue','yellow']
radius=list(range(20,200,15))
ori=[45,135,225,315]
foriinrange(0,4):
t.pencolor(colors[i])
t.setheading(ori[i])
forjinradius:
t.circle(j)
其他的修改一下參數就好了
Ⅷ 怎麼用python的turtle庫畫出這個圖案,要代碼
import turtle as t
def 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作圖程序
實戰小程序:畫出y=x^3的散點圖
樣例代碼如下:
[python]view plain
#coding=utf-8
importpylabasy#引入pylab模塊
x=y.np.linspace(-10,10,100)#設置x橫坐標范圍和點數
y.plot(x,x*x*x,'or')#生成圖像
ax=y.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
ax.set_yticks([-1000,-500,500,1000])
y.xlim(x.min(),x.max())#將橫坐標設置為x的最大值和最小值
y.show()#顯示圖像
[python]view plain
importpylabasy
[python]view plain
y.np.linspace(-10,10,100)
舉例:
[python]view plain
>>>np.linspace(2.0,3.0,num=5)
array([2.,2.25,2.5,2.75,3.])
[python]view plain
y.plot(x,x*x*x,'or')#生成圖像
'r'可設置顏色為紅色,基本上和matlab的操作很像。
[python]view plain
y.xlim(x.min(),x.max())
Ⅹ 怎麼用Python製作一個好玩炫酷的GIF動態圖
importsys
importnumpyasnp
importmatplotlib.pyplotasplt
frommatplotlib.animationimportFuncAnimation
fig,ax=plt.subplots()
fig.set_tight_layout(True)
#詢問圖形在屏幕上的大小和DPI(每英寸點數)
#注意當把圖形保存為文件時,需要為此單獨再提供一個DPI
print('figsize:{0}DPI,sizeininches{1}'.format(
fig.get_dpi(),fig.get_size_inches()))
#繪制一個保持不變(不會被重新繪制)的散點圖以及初始直線
x=np.arange(0,20,0.1)
ax.scatter(x,x+np.random.normal(0,3.0,len(x)))
line,=ax.plot(x,x-5,'r-',linewidth=2)
defupdate(i):
label='timestep{0}'.format(i)
print(label)
#更新直線和軸(用一個新X軸標簽)
#以元組形式返回這一幀需要重新繪制的物體
line.set_ydata(x-5+i)
ax.set_xlabel(label)
returnline,ax
if__name__=='__main__':
#會為每一幀調用Update函數
#這里FunAnimation設置一個10幀動畫,每幀間隔200ms
anim=FuncAnimation(fig,update,frames=np.arange(0,10),interval=200)
iflen(sys.argv)>1andsys.argv[1]=='save':
anim.save('line.gif',dpi=80,writer='imagemagick')
else:
#Plt.show()會一直循環動畫
plt.show()
可以生成下面這種圖