bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

用python繪圖函數,python繪圖函數中圖形突然出現

Python繪圖之(1)Turtle庫詳解

Turtle庫是Python語言中一個很流行的繪制圖像的函數庫,想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標系原點,(0,0)位置開始,它根據一組函數指令的控制,在這個平面坐標系中移動,從而在它爬行的路徑上繪制了圖形。

我們提供的服務有:成都網站設計、成都網站建設、微信公眾號開發、網站優化、網站認證、麻章ssl等。為千余家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的麻章網站制作公司

畫布就是turtle為我們展開用于繪圖區域,我們可以設置它的大小和初始位置。

設置畫布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None),參數分別為畫布的寬(單位像素), 高, 背景顏色。

如:turtle.screensize(800,600, "green")

turtle.screensize() #返回默認大小(400, 300)

turtle.setup(width=0.5, height=0.75, startx=None, starty=None),參數:width, height: 輸入寬和高為整數時, 表示像素; 為小數時, 表示占據電腦屏幕的比例,(startx, starty): 這一坐標表示矩形窗口左上角頂點的位置, 如果為空,則窗口位于屏幕中心。

如:turtle.setup(width=0.6,height=0.6)

turtle.setup(width=800,height=800, startx=100, starty=100)

2.1 畫筆的狀態

在畫布上,默認有一個坐標原點為畫布中心的坐標軸,坐標原點上有一只面朝x軸正方向小烏龜。這里我們描述小烏龜時使用了兩個詞語:坐標原點(位置),面朝x軸正方向(方向), turtle繪圖中,就是使用位置方向描述小烏龜(畫筆)的狀態。

2.2 畫筆的屬性

畫筆(畫筆的屬性,顏色、畫線的寬度等)

1) turtle.pensize():設置畫筆的寬度;

2) turtle.pencolor():沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,可以是字符串如"green", "red",也可以是RGB 3元組。

3) turtle.speed(speed):設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。

2.3 繪圖命令

操縱海龜繪圖有著許多的命令,這些命令可以劃分為3種:一種為運動命令,一種為畫筆控制命令,還有一種是全局控制命令。

(1) 畫筆運動命令

(2) 畫筆控制命令

(3) 全局控制命令

(4) 其他命令

3. 命令詳解

3.1 turtle.circle(radius, extent=None, steps=None)

描述:以給定半徑畫圓

參數:

radius(半徑):半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓;

extent(弧度) (optional);

steps (optional) (做半徑為radius的圓的內切正多邊形,多邊形邊數為steps)。

舉例:

circle(50) # 整圓;

circle(50,steps=3) # 三角形;

circle(120, 180) # 半圓

實例:

1、太陽花

2、五角星

3、時鐘程序

用Python畫圖

今天開始琢磨用Python畫圖,沒使用之前是一臉懵的,我使用的開發環境是Pycharm,這個輸出的是一行行命令,這個圖畫在哪里呢?

搜索之后發現,它會彈出一個對話框,然后就開始畫了,比如下圖

第一個常用的庫是Turtle,它是Python語言中一個很流行的繪制圖像的函數庫,這個詞的意思就是烏龜,你可以想象下一個小烏龜在一個x和y軸的平面坐標系里,從原點開始根據指令控制,爬行出來就是繪制的圖形了。

它最常用的指令就是旋轉和移動,比如畫個圓,就是繞著圓心移動;再比如上圖這個怎么畫呢,其實主要就兩個命令:

turtle.forward(200)

turtle.left(170)

第一個命令是移動200個單位并畫出來軌跡

第二個命令是畫筆順時針轉170度,注意此時并沒有移動,只是轉角度

然后呢? 循環重復就畫出來這個圖了

好玩吧。

有需要仔細研究的可以看下這篇文章 ,這個牛人最后用這個庫畫個移動的鐘表,太贊了。

Turtle雖好玩,但是我想要的是我給定數據,然后讓它畫圖,這里就找到另一個常用的畫圖的庫了。

Matplotlib是python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合交互式地行制圖。其中,matplotlib的pyplot模塊一般是最常用的,可以方便用戶快速繪制二維圖表。

使用起來也挺簡單,

首先import matplotlib.pyplot as plt?導入畫圖的圖。

然后給定x和y,用這個命令plt.plot(x, y)就能畫圖了,接著用plt.show()就可以把圖形展示出來。

接著就是各種完善,比如加標題,設定x軸和y軸標簽,范圍,顏色,網格等等,在 這篇文章里介紹的很詳細。

現在互聯網的好處就是你需要什么內容,基本上都能搜索出來,而且還是免費的。

我為什么要研究這個呢?當然是為了用,比如我把比特幣的曲線自己畫出來可好?

假設現在有個數據csv文件,一列是日期,另一列是比特幣的價格,那用這個命令畫下:

這兩列數據讀到pandas中,日期為df['time']列,比特幣價格為df['ini'],那我只要使用如下命令

plt.plot(df['time'], df['ini'])

plt.show()

就能得到如下圖:

自己畫的是不是很香,哈哈!

然后呢,我在上篇文章 中介紹過求Ahr999指數,那可不可以也放到這張圖中呢?不就是加一條命令嘛

plt.plot(df['time'], df['Ahr999'])

圖形如下:

但是,Ahr999指數怎么就一條線不動啊,?原來兩個Y軸不一致,顯示出來太怪了,需要用多Y軸,問題來了。

繼續谷歌一下,把第二個Y軸放右邊就行了,不過呢得使用多圖,重新繪制

fig = plt.figure() # 多圖

ax1 = fig.add_subplot(111)

ax1.plot(df['time'], df['ini'], label="BTC price")? #?繪制第一個圖比特幣價格

ax1.set_ylabel('BTC price') #?加上標簽

# 第二個直接對稱就行了

ax2 = ax1.twinx()#?在右邊增加一個Y軸

ax2.plot(df['time'], df['Ahr999'], 'r', label="ahr999")??#?繪制第二個圖Ahr999指數,紅色

ax2.set_ylim([0, 50])# 設定第二個Y軸范圍

ax2.set_ylabel('ahr999')

plt.grid(color="k", linestyle=":")# 網格

fig.legend(loc="center")#圖例

plt.show()

跑起來看看效果,雖然丑了點,但終于跑通了。

這樣就可以把所有指數都繪制到一張圖中,等等,三個甚至多個Y軸怎么加?這又是一個問題,留給愛思考愛學習的你。

有了自己的數據,建立自己的各個指數,然后再放到圖形界面中,同時針對異常情況再自動進行提醒,比如要抄底了,要賣出了,用程序做出自己的晴雨表。

python函數圖的繪制

pre

import numpy as np

import matplotlib.pyplot as plt

from matplotlib.patches import Polygon

def func(x):

return -(x-2)*(x-8)+40

x=np.linspace(0,10)

y=func(x)

fig,ax = plt.subplots()

plt.plot(x,y,'r',linewidth=2)

plt.ylim(ymin=20)

a=2

b=9

ax.set_xticks([a,b])

ax.set_xticklabels(['$a$','$b$'])

ax.set_yticks([])

plt.figtext(0.9,0.05,'$x$')

plt.figtext(0.1,0.9,'$y$')

ix=np.linspace(a,b)

iy=func(ix)

ixy=zip(ix,iy)

verts=[(a,0)]+list(ixy)+[(b,0)]

poly = Polygon(verts,facecolor='0.9',edgecolor='0.5')

ax.add_patch(poly)

x_math=(a+b)*0.5

y_math=35

plt.text(x_math,y_math,r"$\int_a^b(-(x-2)*(x-8)+40)dx$",horizontalalignment='center',size=12)

plt.show()

/pre

網頁名稱:用python繪圖函數,python繪圖函數中圖形突然出現
文章出自:http://vcdvsql.cn/article4/hsdoie.html

成都網站建設公司_創新互聯,為您提供網站建設ChatGPT品牌網站制作營銷型網站建設品牌網站建設企業建站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設