❶ python實現彩色散點圖繪制(利用色帶對散點圖進行顏色渲染)
接受自己的普通,然後全力以赴的出眾,告訴自己要努力,但不要著急....
當然, 這個結果並不是我真正想要的,Pass, 太丑了!
好吧,安排,我們先看下實現後的效果!
這個效果自然就比之前的好多了!
實現python散點圖繪制需要用到matplotlib庫, matplotlib庫是專門用於可視化繪圖的工具庫;學習一個新的庫當然看官方文檔了: https://www.osgeo.cn/matplotlib/contents.html
實現思路:
matplotlib.pyplot.scatter() 函數是專門繪制散點圖的函數: https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter
matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **
plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))
其中:
1、c參數為計算的散點密度;
2、cmap為色帶(matplotlib裡面自帶了很多色帶可供選擇),參見:
https://www.osgeo.cn/matplotlib/gallery/color/colormap_reference.html
3、由於計算的散點密度數值大小分散,因此利用norm參數對散點密度Z1進行歸一化處理(歸一化方式很多,參見colors類),並給歸一化方式設置色帶刻度的最大最小值vmin和vmax(一般這兩個參數就是指定散點密度的最小值和最大值),這樣就建立起了密度與色帶的映射關系。
https://matplotlib.org/tutorials/colors/colormapnorms.html
(這里的結果與前面展示的相比改變了計算散點密度的半徑:radius = 3以及繪制散點圖的散點大小marksize)
作者能力水平有限,歡迎各位批評指正!
❷ Python量化教程:不得不學的K線圖「代碼復制可用」
不管是對量化分析師還是普通的投資者來說,K線圖(蠟燭圖)都是一種很經典、很重要的工具。在K線圖中,它會繪制每天的最高價、最低價、開盤價和收盤價,這對於我們理解股票的趨勢以及每天的多空對比很有幫助。
一般來說,我們會從各大券商平台獲取K線圖,但是這種情況下獲得的K線圖往往不能靈活調整,也不能適應復雜多變的生產需求。因此我們有必要學習一下如何使用Python繪制K線圖。
需要說明的是,這里mpl_finance是原來的matplotlib.finance,但是現在獨立出來了(而且好像沒什麼人維護更新了),我們將會使用它提供的方法來繪制K線圖;tushare是用來在線獲取股票數據的庫;matplotlib.ticker中有個FuncFormatter()方法可以幫助我們調整坐標軸;matplotlib.pylab.date2num可以幫助我們將日期數據進行必要的轉化。
我們以上證綜指18年9月份以來的行情為例。
我們先使用mpl_finance繪制一下,看看是否一切正常。
可以看到,所有的節假日包括周末,在這里都會顯示為空白,這對於我們圖形的連續性非常不友好,因此我們要解決掉他們。
可以看到,空白問題完美解決,這里我們解釋一下。由於matplotlib會將日期數據理解為 連續數據 ,而連續數據之間的間距是有意義的,所以非交易日即使沒有數據,在坐標軸上還是會體現出來。連續多少個非交易日,在坐標軸上就對應了多少個小格子,但這些小格子上方並沒有相應的蠟燭圖。
明白了它的原理,我們就可以對症下葯了。我們可以給橫坐標(日期)傳入連續的、固定間距的數據,先保證K線圖的繪制是連續的;然後生成一個保存有正確日期數據的列表,接下來,我們根據坐標軸上的數據去取對應的正確的日期,並替換為坐標軸上的標簽即可。
上邊format_date函數就是這個作用。由於前邊我們給dates列生成了從0開始的序列連續數據,因此我們可以直接把它當作索引,從真正的日期列表裡去取對應的數據。在這里我們要使用matplotlib.ticker.FuncFormattter()方法,它允許我們指定一個格式化坐標軸標簽的函數,在這個函數里,我們需要接受坐標軸的值以及位置,並返回自定義的標簽。
你學會了嗎?
當然,一個完整的K線圖到這里並沒有結束,後邊我們會考慮加入均線、成交量等元素,感興趣的同學歡迎關注哦!
❸ 怎麼通俗地理解張量
對Gradle通俗的理解:
軟體開發講究代碼復用,通過復用可以使工程更易維護,代碼量更少..... 開發者可以通過繼承,組合,函數模塊等實現不同程度上的代碼復用.但不知你有沒有想過,軟體開發也是一種工程作業,絕不僅僅是寫代碼,還涉及到工程的各種管理(依賴,打包,部署,發布,各種渠道的差異管理.....),你每天都在build,clean,簽名,打包,發布,有沒有想過這種過程,也可以像代碼一樣被描述出來, 也可以被復用.
❹ 如何採用Python語言來化散點圖
1、打開自己的winPython程序,如圖所示;
❺ 用Python畫圖
今天開始琢磨用Python畫圖,沒使用之前是一臉懵的,我使用的開發環境是Pycharm,這個輸出的是一行行命令,這個圖畫在哪裡呢?
搜索之後發現,它會彈出一個對話框,然後就開始畫了,比如下圖
第一個常用的庫是Turtle,它是Python語言中一個很流行的繪制圖像的函數庫,這個詞的意思就是烏龜,你可以想像下一個小烏龜在一個x和y軸的平面坐標系裡,從原點開始根據指令控制,爬行出來就是繪制的圖形了。
它最常用的指令就是旋轉和移動,比如畫個圓,就是繞著圓心移動;再比如上圖這個怎麼畫呢,其實主要就兩個命令:
turtle.forward(200)
turtle.left(170)
第一個命令是移動200個單位並畫出來軌跡
第二個命令是畫筆順時針轉170度,注意此時並沒有移動,只是轉角度
然後呢? 循環重復就畫出來這個圖了
好玩吧。
有需要仔細研究的可以看下這篇文章 https://blog.csdn.net/zengxiantao1994/article/details/76588580 ,這個牛人最後用這個庫畫個移動的鍾表,太贊了。
Turtle雖好玩,但是我想要的是我給定數據,然後讓它畫圖,這里就找到另一個常用的畫圖的庫了。
Matplotlib是python最著名的繪圖庫,它提供了一整套和matlab相似的命令API,十分適合互動式地行制圖。其中,matplotlib的pyplot模塊一般是最常用的,可以方便用戶快速繪制二維圖表。
使用起來也挺簡單,
首先import matplotlib.pyplot as plt 導入畫圖的圖。
然後給定x和y,用這個命令plt.plot(x, y)就能畫圖了,接著用plt.show()就可以把圖形展示出來。
接著就是各種完善,比如加標題,設定x軸和y軸標簽,范圍,顏色,網格等等,在 https://blog.csdn.net/guoziqing506/article/details/78975150 這篇文章里介紹的很詳細。
現在互聯網的好處就是你需要什麼內容,基本上都能搜索出來,而且還是免費的。
我為什麼要研究這個呢?當然是為了用,比如我把比特幣的曲線自己畫出來可好?
假設現在有個數據csv文件,一列是日期,另一列是比特幣的價格,那用這個命令畫下:
這兩列數據讀到pandas中,日期為df['time']列,比特幣價格為df['ini'],那我只要使用如下命令
plt.plot(df['time'], df['ini'])
plt.show()
就能得到如下圖:
自己畫的是不是很香,哈哈!
然後呢,我在上篇文章 https://www.jianshu.com/p/d4013d8a73de 中介紹過求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軸怎麼加?這又是一個問題,留給愛思考愛學習的你。
有了自己的數據,建立自己的各個指數,然後再放到圖形界面中,同時針對異常情況再自動進行提醒,比如要抄底了,要賣出了,用程序做出自己的晴雨表。