吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用seaborn與pandas包繪制可視化圖形帶你玩轉股市數據

數據分析與開發 ? 來源:數據STUDIO ? 作者:云朵君 ? 2021-06-24 17:55 ? 次閱讀

導讀:本文介紹兩大繪圖技巧,分布使用seaborn與pandas包繪制可視化圖形。旨在通過金融股市歷史價格數據學習可視化繪圖技巧。

在日常生活中,可視化技術常常是優先選擇的方法。盡管在大多數技術學科(包括數據挖掘)中通常強調算法或數學方法,但是可視化技術也能在數據分析方面起到關鍵性作用。

除了折線圖和散點圖,你還知道哪些一行代碼就能繪制出的酷炫又實用的可視化圖形呢?下面我們就來一起探索吧。

導入相關模塊

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

sns.set(style=“white”, color_codes=True)

數據準備

此處數據獲取及特征構造可參見金融數據準備。

折線圖看趨勢

折線圖在股市中地位是不可撼動的,折線圖即股票走勢圖也就是K線圖,是股民們分析股市歷史數據即走勢的重要圖形,通常分為,日、周、月、季、年K線圖。

單條折線

fig, ax = plt.subplots()

fig.set_size_inches(12, 8)

sns.lineplot(dataset.index ,

dataset[‘Adj Close’])

雙折線

sns.lineplot(x=dataset.index,

y=“Adj Close”,

hue=“Increase_Decrease”, data=dataset)

多條折線

# Plot Multi lines

sns.lineplot(data=dataset[

[‘Open’, ‘Low’, ‘High’, ‘Close’]])

計數直方圖做對比

dataset[‘Increase_Decrease’].value_counts()

Decrease 812

Increase 759

Name: Increase_Decrease, dtype: int64

計數直方圖會自動聚合求和。可以用以比較各個不同階段成交量或成交金額的有力工具。

sns.countplot(

dataset[‘Increase_Decrease’],

label=“Count”)

散點圖看相關性

散點圖表示因變量(Y軸數值)隨自變量(X軸數值)變化的大致趨勢,從而選擇合適的函數對數據點進行擬合;散點圖中包含的數據越多,比較的效果也越好。

可以使用散點圖提供關鍵信息

1、變量之間是否存在數量關聯趨勢;2、如果存在關聯趨勢,是線性還是曲線的;3、如果有某一個點或者某幾個點偏離大多數點,也就是離群值,通過散點圖可以一目了然。從而可以進一步分析這些離群值是否可能在建模分析中對總體產生很大影響。

# Scatterplot

dataset.plot(kind=“scatter”,

x=“Open”,

y=“Close”,

figsize=(10,8))

二元散點圖和一元直方圖

用 sns.jointplot 可以同時看到兩個變量的聯合分布與單變量的獨立分布。

grid=sns.jointplot(x=“Open”,

y=“Close”,

data=dataset,

size=5)

grid.fig.set_figwidth(8)

grid.fig.set_figheight(8)

聯合分布圖也可以自動進行 KDE 和回歸。

sns.jointplot(dataset.loc[:,‘Open’], dataset.loc[:,‘Close’], kind=“reg”, color=“#ce1414”)

結構化多繪圖網格

當您想要在數據集的子集中分別可視化變量的分布或多個變量之間的關系時,FacetGrid[1]類非常有用。一個FacetGrid可以與多達三個維度可以得出:row,col,和hue。前兩個與得到的軸陣列有明顯的對應關系; 將色調變量視為沿深度軸的第三個維度,其中不同的級別用不同的顏色繪制。

基本工作流程是FacetGrid使用數據集和用于構造網格的變量初始化對象。然后,可以通過調用FacetGrid.map()或將一個或多個繪圖函數應用于每個子集 FacetGrid.map_dataframe()。最后,可以使用其他方法調整繪圖,以執行更改軸標簽,使用不同刻度或添加圖例等操作。

grid = sns.FacetGrid(dataset, col=‘Buy_Sell’, hue=“Increase_Decrease”, size=5) .map(plt.scatter, “Open”, “Close”) .add_legend()grid.fig.set_figwidth(15)grid.fig.set_figheight(6)

grid = sns.FacetGrid(dataset, col=‘Buy_Sell’, row=‘Buy_Sell_on_Open’, hue=“Increase_Decrease”, size=6)grid.map(sns.kdeplot, “Close”) grid.add_legend()

箱圖可看離群值

# Boxplot

sns.boxplot(x=‘Increase_Decrease’,

y=dataset[‘Close’],

data=dataset)

分類散點圖

按照不同類別對樣本數據進行分布散點圖繪制。

ax = sns.boxplot(x=‘Increase_Decrease’,

y=dataset[‘Close’],

data=dataset)

ax = sns.stripplot(x=‘Increase_Decrease’,

# 按照x軸類別進行繪制

y=dataset[‘Close’],

data=dataset,

jitter=True,

# 當數據重合較多時,用該參數做一些調整,# 也可以設置間距如,jitter = 0.1

edgecolor=“gray”)

# 可以通過hue參數對散點圖中的數值進行分類

小提琴圖

小提琴圖是箱線圖與核密度圖的結合,箱線圖展示了分位數的位置,核密度圖則展示了任意位置的密度,通過小提琴圖可以知道哪些位置的數據點聚集的較多,因其形似小提琴而得名。

其外圍的曲線寬度代表數據點分布的密度,中間的箱線圖則和普通箱線圖表征的意義是一樣的,代表著中位數、上下分位數、極差等。細線代表 置信區間。

當使用帶有兩種顏色的變量時,將split設置為 True 則會為每種顏色繪制對應半邊小提琴。從而可以更容易直接的比較分布。

sns.violinplot(x=‘Increase_Decrease’,

y=dataset[‘Volume’],

hue=‘Buy_Sell’,

split=True,

data=dataset,

size=6)熱力圖

熱力圖在實際中常用于展示一組變量的相關系數矩陣,在展示列聯表的數據分布上也有較大的用途,通過熱力圖我們可以非常直觀地感受到數值大小的差異狀況。

sns.heatmap(dataset[[‘Open’, ‘High’, ‘Low’, ‘Adj Close’, ‘Volume’, ‘Returns’]].corr(),

annot=True,

linewidths=.5,

fmt= ‘.3f’)

熱力圖的右側是顏色帶,上面代表了數值到顏色的映射,數值由小到大對應色彩由暗到亮。

pairplot看特征間的關系

seaborn中pairplot函數可視化探索數據特征間的關系。

當你需要對多維數據集進行可視化時,最終都要使用散布矩陣圖**(pair plot)** 。如果想畫出所有變量中任意兩個變量之間的圖形,用矩陣圖探索多維數據不同維度間的相關性非常有效。

散布圖有兩個主要用途。其一,他們圖形化地顯示兩個屬性之間的關系。直接使用散布圖,或使用變換后屬性的散布圖,也可以判斷非線性關系。

其二,當類標號給出時,可以使用散布圖考察兩個屬性將類分開的程度。意思是用一條直線或者更復雜的曲線,將兩個屬性定義的平面分成區域,每個區域包含一個類的大部分對象,則可能基于這對指定的屬性構造精確的分類器。

sns.pairplot(dataset.drop(

[“Increase_Decrease”, “Buy_Sell_on_Open”,

“Buy_Sell”],axis=1), size=3,

# diag_kind=“kde”

PairGrid 成對關系子圖

子圖網格,用于在數據集中繪制成對關系。

此類將數據集中的每個變量映射到多軸網格中的列和行。可以使用不同的axes-level繪圖函數在上三角形和下三角形中繪制雙變量圖,并且每個變量的邊際分布可以顯示在對角線上。

它還可以使用hue參數表示條件化的附加級別,該參數以不同的顏色繪制不同的數據子集。這使用顏色來解析第三維上的元素,但僅在彼此之上繪制子集,而不會像axes-level函數接受色相那樣為特定的可視化效果定制色相參數。

sns.set(style=“white”)df = dataset.loc[:,[‘Open’,‘High’,‘Low’]]g = sns.PairGrid(df, diag_sharey=False)g.map_lower(sns.kdeplot, cmap=“Blues_d”)g.map_upper(plt.scatter)g.map_diag(sns.kdeplot, lw=3)

dataset.boxplot(by=“Increase_Decrease”, figsize=(12, 6))

pandas繪圖

條形圖

dataset[‘Volume’].resample(‘Y’).mean().plot.bar()

pandas可視化[2]中,可以使用Series和DataFrame上的plot方法,它只是一個簡單的包裝器 plt.plot(),另外還有一些有幾個繪圖功能在pandas.plotting 內。

安德魯斯曲線

安德魯斯曲線[3]允許將多元數據繪制為大量曲線,這些曲線是使用樣本的屬性作為傅里葉級數的系數而創建的。通過為每個類別對這些曲線進行不同的著色,可以可視化數據聚類。屬于同一類別的樣本的曲線通常會更靠近在一起并形成較大的結構。

from pandas.plotting import andrews_curves

andrews_curves(dataset[

[‘Open’, ‘Close’, ‘Increase_Decrease’]],

“Increase_Decrease”)

平行坐標

平行坐標[4]是一種用于繪制多元數據的繪制技術 。平行坐標允許人們查看數據中的聚類,并直觀地估計其他統計信息。使用平行坐標點表示為連接的線段。每條垂直線代表一個屬性。一組連接的線段代表一個數據點。趨于聚集的點將顯得更靠近。

from pandas.plotting import parallel_coordinates

parallel_coordinates(dataset[

[‘Open’, ‘High’, ‘Low’, ‘Increase_Decrease’]],

“Increase_Decrease”)

徑向坐標可視化

RadViz是一種可視化多變量數據的方法。它基于簡單的彈簧張力最小化算法。基本上,在平面上設置了一堆點。在我們的情況下,它們在單位圓上等距分布。每個點代表一個屬性。然后,假設數據集中的每個樣本都通過彈簧連接到這些點中的每個點,彈簧的剛度與該屬性的數值成正比(將它們標準化為單位間隔)。樣本在平面上的沉降點(作用在樣本上的力處于平衡狀態)是繪制代表樣本的點的位置。根據樣本所屬的類別,其顏色會有所不同。

from pandas.plotting import radviz

radviz(dataset[

[‘Open’,‘High’, ‘Low’, ‘Close’, ‘Increase_Decrease’]],

“Increase_Decrease”)

滯后圖

滯后圖用于檢查數據集或時間序列是否隨機。隨機數據在滯后圖中不應顯示任何結構。非隨機結構意味著基礎數據不是隨機的。該lag參數可以傳遞,而當lag=1時基本上是data[:-1]對 data[1:]。

from pandas.plotting import lag_plot

lag_plot(dataset[‘Volume’].tail(250))

自相關圖

自相關圖通常用于檢查時間序列中的隨機性。通過在變化的時滯中計算數據值的自相關來完成此操作。如果時間序列是隨機的,則對于任何和所有時滯間隔,此類自相關應接近零。如果時間序列不是隨機的,則一個或多個自相關將明顯為非零。圖中顯示的水平線對應于95%和99%的置信帶。虛線是99%置信帶。

from pandas.plotting import autocorrelation_plot

autocorrelation_plot(dataset[‘Volume’])

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7145

    瀏覽量

    89591

原文標題:Seaborn + Pandas 帶你玩轉股市數據可視化分析

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    七款經久不衰的數據可視化工具!

    圖形等形式展示,使數據更易于理解與分析。本文將深入探討數據可視化工具的概念、種類及其應用,同時,我們將推薦一款高效好用的數據
    發表于 01-19 15:24

    什么是大屏數據可視化?特點有哪些?

    介紹: 特點 直觀易懂:大屏數據可視化通過圖表、圖形和其他可視化元素,將復雜的數據轉化為直觀易懂的形式,使得用戶無需深入挖掘
    的頭像 發表于 12-16 16:59 ?287次閱讀

    如何找到適合的大屏數據可視化系統

    選擇合適的大屏數據可視化系統是企業或組織在數字轉型過程中至關重要的一步。一個優秀的大屏數據可視化系統能夠實時呈現關鍵業務
    的頭像 發表于 12-13 15:47 ?173次閱讀

    Minitab 數據可視化技巧

    數據分析領域,數據可視化是一種將數據圖形或圖像的形式展示出來的技術,它可以幫助我們更直觀地理解數據
    的頭像 發表于 12-02 15:40 ?431次閱讀

    智慧能源可視化監管平臺——助力可視化能源數據管理

    博達可視化大屏設計平臺在智慧能源領域的價值體現在實時監控、數據可視化、決策支持和效率提升等方面。借助該平臺,企業可以輕松搭建智慧能源類可視化大屏,更加精確和高效地管理生產和生活,實現能
    的頭像 發表于 11-29 10:00 ?457次閱讀
    智慧能源<b class='flag-5'>可視化</b>監管平臺——助力<b class='flag-5'>可視化</b>能源<b class='flag-5'>數據</b>管理

    大屏數據可視化 開源

    在當今信息爆炸的時代,數據已經成為各個行業決策制定和業務發展的關鍵。為了更直觀、準確地理解和利用海量數據, 大屏數據可視化 成為一種強大的工具。通過將
    的頭像 發表于 06-27 16:06 ?468次閱讀
    大屏<b class='flag-5'>數據</b><b class='flag-5'>可視化</b> 開源

    物聯網時代,為什么需要可視化數據大屏

    效率、能耗水平等信息,從而合理優化并采取措施,促進企業的數字轉型。 由于人類大腦對視覺信息的處理優于對文本的處理,因此使用圖表、圖形和設計元素把數據進行可視化,可以幫助更容易的了解
    的頭像 發表于 06-18 13:53 ?445次閱讀
    物聯網時代,為什么需要<b class='flag-5'>可視化</b><b class='flag-5'>數據</b>大屏

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將數據圖形、圖像、動畫等視覺形式展現出來的技術,特別是在處理和分析態勢數據時,該技術能夠將復雜的
    的頭像 發表于 06-11 15:47 ?416次閱讀

    智慧大屏是如何實現數據可視化的?

    智慧大屏,作為數據可視化的重要載體,已在城市管理、交通監控、商業運營等領域廣泛應用。本文旨在闡述智慧大屏實現數據可視化的關鍵技術和方法,包括數據
    的頭像 發表于 06-04 15:02 ?692次閱讀
    智慧大屏是如何實現<b class='flag-5'>數據</b><b class='flag-5'>可視化</b>的?

    大屏數據可視化的作用和意義

    大屏數據可視化是指利用大屏幕設備展示數據信息,通過圖表、圖像、動畫等視覺手段將數據呈現出來,以便用戶能夠直觀、清晰地理解
    的頭像 發表于 06-03 17:56 ?774次閱讀

    大屏數據可視化是什么?運用了什么技術

    大屏數據可視化 是一種利用大屏幕設備展示數據可視化結果的技術,旨在以更生動、直觀的方式呈現數據信息。這種
    的頭像 發表于 05-24 15:35 ?928次閱讀

    智慧城市-可視化,進一步提高信息建設水平

    智能城市可視化是指整合各種城市信息資源,以地圖、虛擬現實等形式展示各種城市數據,更直觀地了解和管理城市的運行和發展。智能城市可視化主要通過地理信息系統(GIS)、實現大數據、虛擬現實等
    的頭像 發表于 05-22 16:49 ?500次閱讀

    數據可視化:企業數字建設效果的呈現

    數據可視化即通過圖表的形式將數據的內在信息有邏輯性地呈現給用戶,使用戶更容易發現數據中蘊藏的規律,找出問題,進而做出決策;另一方面,數據
    的頭像 發表于 04-29 10:18 ?509次閱讀
    <b class='flag-5'>數據</b><b class='flag-5'>可視化</b>:企業數字<b class='flag-5'>化</b>建設效果的呈現

    深入探討機器學習的可視化技術

    機器學習可視化(簡稱ML可視化)一般是指通過圖形或交互方式表示機器學習模型、數據及其關系的過程。目標是使理解模型的復雜算法和數據模式更容易,
    發表于 04-25 11:17 ?480次閱讀
    深入探討機器學習的<b class='flag-5'>可視化</b>技術

    態勢數據可視化技術有哪些

    智慧華盛恒輝態勢數據可視化技術是一種將復雜、動態的態勢數據以直觀、易于理解的方式展現出來的技術手段。以下是幾種主要的態勢數據可視化技術: 網
    的頭像 發表于 04-22 15:17 ?467次閱讀
    德州扑克大小顺序| 百家乐官网桌手机套| 大发888娱乐场出纳| 百家乐路珠价格| 凯时百家乐技巧| 百家乐官网欧洲赔率| 百家乐官网游戏软件出售| 大发888真人娱乐城| rmb百家乐的玩法技巧和规则| 百家乐路单破解软件| 巴厘岛百家乐官网娱乐城| 百家乐官网电话投注怎么玩| 百家乐官网存在千术吗| 赌球平台| 真人888| 名仕百家乐的玩法技巧和规则| 马尼拉百家乐官网的玩法技巧和规则| 百家乐官网免费试玩游戏| 玩百家乐官网优博娱乐城| 太阳城百家乐官网网上| 百家乐官网赌的技巧| 仲巴县| 钱柜娱乐城怎么样| bet365官方| www.sbobet2.com| 网上百家乐官网玩法| 百家乐的视频百家乐| 沙龙百家乐娱乐平台| 黄金城百家乐手机版| 大发888有手机版本吗| 德州扑克游戏下载| 腾飞国际娱乐城| 百家乐官网有不有作弊| 百家乐官网分路单| 百家乐官网大轮转| 网上百家乐官网好玩吗| 网络百家乐官网内幕| 深圳百家乐官网的玩法技巧和规则| 百家乐登封代理| 百家乐路子技巧| 998棋牌游戏|