本文目錄一覽:
- 1、python畫圖:,橫坐標是點數(1到1000),縱坐標是大小不同的數值,即如何用顏色的深淺代表數值的大小?
- 2、python_海龜繪圖_坐標系問題_畫筆各種方法-python工作筆記013
- 3、python 繪製和密度圖筆記
- 4、用Python畫圖
- 5、自學python需要做什麼筆記
python畫圖:,橫坐標是點數(1到1000),縱坐標是大小不同的數值,即如何用顏色的深淺代表數值的大小?
1、首先在python軟體中,創建一個響應滑鼠的自定義函數,當滑鼠在畫布上面點擊一下,就畫一個圓。
2、創建一個畫布,背景是白色:img=np.ones((365,500,3),np.uint8)*255。
3、然後創建一個窗口:cv2.namedWindow(‘image’)。當滑鼠在這個窗口裡面的時候,上面的自定義函數會響應滑鼠。
4、開始一個while循環,每次在image窗口裡面點擊滑鼠,就會畫一個圓。
5、執行程序之後,在畫布上隨機的點擊滑鼠,就可以得到彩色的圓。
python_海龜繪圖_坐標系問題_畫筆各種方法-python工作筆記013
然後我們繼續看,這次我們用海龜繪圖,程序包,去畫畫,
看看海龜繪圖都有哪些方法
可以看到,先導入import turtle 海龜繪圖
然後turtle.showturtle() 會顯示一個箭頭
turtle.write(“hello world”) 會顯示對應文字
然後turtle.forward(300),會向前走300像素
然後看看海龜繪圖的,坐標體系
然後turtle.color(“red”),把畫筆顏色換成紅色
然後turtle.left(90)把箭頭,逆時針轉90度
然後turtle.forward(300) 向前移動300個像素
然後turtle.goto(0,50) 走到0,50這個坐標點去
再看一下坐標系,原點0,0開始操作
還有上面這些操作,我們也試一試
turtle.goto(0,0)是回到原點
turtle.penup()是抬起畫筆
然後turtle.goto(0,300),turtle.goto(0,0) 然後再去,turtle.pendown()放下畫筆
然後再去turtle.goto(0,50) turtle.goto(50,50)走到對應的坐標去
然後再去turtle.circle(100),以100為半徑,逆時針畫一個圓
可以看到,半徑是100對吧
python 繪製和密度圖筆記
import pandasas pd
import numpyas np
import seabornas sns
import matplotlib.pyplotas plt
pd.set_option(‘display.max_columns’, 10000)
pd.set_option(‘display.max_rows’, 10000000000)
pd.set_option(‘display.width’, 100000)
income = pd.read_excel(r’D:\bigData\0629demo\dataSource\income.xlsx’)
fill_data = income.fillna(value={‘workclass’: income.workclass.mode()[0], ‘occupation’: income.occupation.mode()[0],
‘native-country’: income[‘native-country’].mode()[0]}, inplace=True)
# print(income.apply(lambda x: np.sum(x.isnull())))
# print(income)
print(income.describe())
print(income.describe(include=[‘object’]))
# 設置繪圖風格
plt.style.use(‘ggplot’)
# 設置多圖形組合
fig, axes = plt.subplots(2, 1)
# 繪製不同收入水平下的年齡核密度圖
# kind=’kde’, label=’=50K’, ax=axes[0], legend=True, linestyle=’-‘
# kind=’kde’, label=’50K’, ax=axes[0], legend=True, linestyle=’–‘
income[‘age’][income.income ==’ =50K’].plot(kind=’kde’, ax=axes[0], label=’=50K’, legend=True, linestyle=’-‘)
income[‘age’][income.income ==’ 50K’].plot(kind=’kde’, ax=axes[0], label=’50K’, legend=True, linestyle=’–‘)
# 繪製不同收入水平下的周工作小時數核密度圖
# kind=’kde’, label=’= 50K’, ax=axes[1], legend=True, linestyle=’-‘
# kind=’kde’, label=’ 50K’, ax=axes[1], legend=True, linestyle=’–‘
income[‘hours-per-week’][income.income ==’ =50K’].plot(kind=’kde’, label=’= 50K’, ax=axes[1], legend=True,
linestyle=’-‘)
income[‘hours-per-week’][income.income ==’ 50K’].plot(kind=’kde’, label=’ 50K’, ax=axes[1], legend=True,
linestyle=’–‘)
plt.show()
# 構造不同收入水平下各種族人數的數據
race = pd.DataFrame(income.groupby(by=[‘race’, ‘income’]).agg(np.size).loc[:, ‘age’])
# 重設行索引
race = race.reset_index()
# 變數重命名
race.rename(columns={‘age’:’counts’}, inplace=True)
print(race)
# 排序
race.sort_values(by=[‘race’, ‘counts’], ascending=False, inplace=True)
# 構造不同收入水平下各家庭關係人數的數據
relationship = pd.DataFrame(income.groupby(by=[‘relationship’, ‘income’]).agg(np.size).loc[:, ‘age’])
relationship = relationship.reset_index()
relationship.rename(columns={‘age’:’counts’}, inplace=True)
relationship.sort_values(by=[‘relationship’, ‘counts’], ascending=False, inplace=True)
plt.figure(figsize=(15, 10))
sns.barplot(x=’race’, y=’counts’, hue=’income’, data=race)
plt.show()
plt.figure(figsize=(15, 10))
sns.barplot(x=’relationship’, y=’counts’, hue=’income’, data=relationship)
plt.show()
用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需要做什麼筆記
python的書很多 , 但是好書不多, 經過我這麼多年的python學習,我總結出了一個python學習的讀書路線:
python簡明教程: 讓你大體上了解一下python, 最好是能夠獨立完成最後一個練習項目之後再看別 的書;
python學習手冊, python基礎教程,python核心編程, 這三本書都是講基礎的, 但是都有不足又相互補充 , 我建議你隨便挑一本開始看, 當看到某個地方有些不明白的時候, 去看看另外兩本書里對應的章節, 有的時候你會恍然大悟的;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237790.html