Matplotlib圖鑑|進階散點圖7-8

2021-02-21 可視化圖鑑

大家好,從今天起,我們將開始更新Matplotlib進階散點圖圖鑑。本文將講解以下二個進階的散點圖繪製方法。

進階散點圖-007

下面我們就來講解如何繪製第一個進階散點圖,注意,代碼在以下環境全部通過測試:

因版本不同,可能會有部分語法差異,如有報錯,請先檢查拼寫及版本是否一致!

首先導入相關庫並查看版本

import matplotlib
print(matplotlib.__version__) #查看Matplotlib版本
import pandas as pd
print(pd.__version__) #查看pandas版本
import numpy as np
print(np.__version__) #查看numpy版本
import matplotlib.pyplot as plt 
plt.rcParams['font.sans-serif'] = ['SimHei']  #設置中文

mac系統推薦直接使用以下

import matplotlib.pyplot as plt 
plt.rcParams['font.sans-serif'] = ['STHeiti'] # mac自帶中文

接著我們使用一組真實數據,由於我們要建立rank、company和MC(總市值)3個維度的向量,我們考慮到把他們寫入DataFrame數據結構。我們可以看到MC(總市值)在區間400到8000左右,添加 ['size']考慮首先對他進行數據歸一化處理,使之在屏幕中的分布剛好撐滿整個畫布。再者我們添加 [『color』] 對於繪製的點的顏色進行選擇。新添 ['Y'] 對他進行從小到大排列。

data=pd.DataFrame(data={'rank':[10,9,8,7,6,5,4,3,2,1],
                        'company':['推特','沃達豐','IBM','思科','英特爾','奧多比','英偉達','萬事達卡','谷歌C','臉書'],
                        'MC':[432.11, 446.75, 1107.94, 1879.51, 1997.78, 2386.36, 3254.89,3544.57,6536.81, 7743.65]})

data['size']=data['MC']*500/(data['MC'].max()-data['MC'].min())
data['color']=[ '#E6E6FA', '#FFF0F5', '#FFC1C1', '#FF6A6A', '#FF3030','#EE799F', '#CD919E', '#CD5555', '#8B3A62','#8B636C']
data['Y']=10-data['rank']

對於我們所需要的數據預處理的階段就到這樣,接下來我們開始繪圖。fig, ax = plt.subplots(1,1,dpi=300),其中參數1和1分別代表子圖的行數和列數,一共有 1x1 個子圖像。函數返回一個figure圖像和子圖ax的array列表。設置dpi(像素)大小為300。接下來我們對x、y刻度做一系列調整。

fig,ax=plt.subplots(1,1,dpi=300)

#隱藏y軸
ax.get_yaxis().set_visible(False)
#將刻度小橫線設置為白色,標籤顏色為黑色
plt.tick_params(axis='x',color='w',labelcolor='#1C1C1C')
#x,y軸刻度範圍
ax.set_xlim(200, 9000)
ax.set_xticks(range(200, 9000, 1000))
ax.set_ylim(-1,10)
#畫 x,y水平線,設置顏色,線類型,和線寬度
for i in range(200,9000,1000):
    ax.axvline(x=i,c="gray",ls="-",lw=0.1)
for y in range(10):
    ax.axhline(y=y,c="gray",ls="-",lw=0.1)

利用ax.scatter進行繪製散點圖。對於該圖我們希望在散點中來標記y軸的公司情況,我們設置了 ['text_size'] 來設置字體,這裡我們根據mc的大小來設置字體,越大的mc字體越大。zip()函數把 ['text_size']['MC'] 大小進行從小到大配對。使用ax.text畫出字體,並進行調整。

ax.scatter('MC', 'company', c='color', s='size', data=data)   #c : color  s :size  

data['text_size']=[6,6,7,7,8,8,9,9,9,10]
for rank,company in zip(data['rank'],data['company']):
    MC=data[data['company']==company]['MC']
    text_size=data[data['company']==company]['text_size']
    ax.text(MC-500*text_size/17,10-rank-0.1,company,fontdict={'color':'#1C1C1C','size':text_size},fontweight='heavy')

#設置上下左右外框變為透明
for i in ['top','right','left','bottom']:
    ax.spines[i].set_visible(False)
    
plt.title("2020年知名美股總市值比較")
plt.savefig("D_07.png")
plt.show()

D_07進階散點圖-008

現在修改散點圖字體的位置,使其縱軸顯示公司名,因為語法與第一幅一致,此處不在贅述!

data=pd.DataFrame(data={'rank':[10,9,8,7,6,5,4,3,2,1],
                        'company':['推特','沃達豐','IBM','思科','英特爾','奧多比','英偉達','萬事達卡','谷歌C','臉書'],
                        'MC':[432.11, 446.75, 1107.94, 1879.51, 1997.78, 2386.36, 3254.89,3544.57,6536.81, 7743.65]})

data['size']=data['MC']*500/(data['MC'].max()-data['MC'].min())

data['color']=[ '#E6E6FA', '#FFF0F5', '#FFC1C1', '#FF6A6A', '#FF3030','#EE799F', '#CD919E', '#CD5555', '#8B3A62','#8B636C']

data['Y']=10-data['rank']

fig,ax=plt.subplots(1,1,dpi=300)

plt.tick_params(axis='x',color='w',labelcolor='#3d405b')
plt.tick_params(axis='y',color='w',labelcolor='#3d405b')

#x,y軸刻度範圍
ax.set_xlim(200, 9000)
ax.set_xticks(range(200, 9000, 1000))
ax.set_ylim(-1,10)

ylabels=data['company'].tolist() #縱軸顯示
ax.set_ylim(-1,10)
ax.set_yticklabels(ylabels)

for i in range(200,9000,1000):
    ax.axvline(x=i,c="gray",ls="-",lw=0.1)
for y in range(10):
    ax.axhline(y=y,c="gray",ls="-",lw=0.1)

ax.scatter('MC', 'company', c='color', s='size', data=data)   #c : color  s :size  這裡傳入了序列

for i in ['top','right','left','bottom']:
    ax.spines[i].set_visible(False)
plt.title("2020年知名美股總市值比較")
plt.savefig("D_08.png")
plt.show()
plt.close()

D_08

以上就是本期兩副圖鑑的全部內容,更多精美圖表歡迎關注後續更新。

以上代碼均已通過測試,如有報錯,請先檢查拼寫與版本,若在某個版本中需要修改,歡迎在留言區指出,對於本篇內容有任何問題歡迎也請一定給我留言,謝謝!

相關焦點

  • Matplotlib圖鑑|基礎散點圖
    首先導入相關庫並查看版本import matplotlibprint(matplotlib.__version__) #查看Matplotlib版本import pandas as pdprint(pd.
  • Matplotlib圖鑑|基礎散點圖1-3
    大家好,從今天起,我們將開始更新Matplotlib基礎散點圖圖鑑。本文為基礎散點圖第一篇,將講解以下三個簡單的柱狀圖繪製方法散點圖繪製說明因本文是散點圖的開篇,因此先簡單講一下散點圖的繪圖原理,在Matplotlib中,柱狀圖可以使用plt.scatter製作散點圖。
  • Matplotlib圖鑑|基礎餅圖
    基礎餅圖-004下面我們就來講解如何繪製第一個分組散點圖,注意,代碼在以下環境全部通過測試:首先導入相關庫並查看版本import matplotlibprint(matplotlib.__version__) #查看Matplotlib版本import pandas as pdprint(pd.
  • Python-matplotlib: 散點圖的繪製
    ,所使用的數據關於全球教育水平劃分的師生比例,涉及到的包主要為matplotlib和seaborn,當然用於數據處理分析的pandas和 numpy也必不可少。本文涉及的數據主要包括兩種,一種為全球各大洲的網格數據,用於繪製另類散點圖例,一種為全球各州的教育水平的師生比例,用於散點圖的繪圖。各大洲的網格數據如下(部分):如紅框所示,為所需要的數據,用於繪圖。
  • Python-matplotlib 學術型散點圖繪製
    本期推文只要介紹學術散點圖的繪製教程,涉及的內容主要還是matplotlib散點圖的繪製,只不過添加了相關性分析,擬合關係式和顏色映射散點密度(大多數的英文文章中多出現此類圖表
  • 第92天:Python Matplotlib 進階操作
    這些值使用 matplotlib 軟體包的 pyplot 子模塊的 plot() 函數繪製。b'藍色'g'綠色'r'紅色'c'青/綠色'm'品紅色'y'黃色'k'黑色'w'白色'o'橙色2、散點圖使用以上兩個表格表示的簡化符號畫一個綠色散點圖,散點使用 'o'表示,,具體實例如下:# 導入模塊import numpy as npimport matplotlib.pyplot as pltx = np.arange(2, 15)y
  • matplotlib 必知的 15 個圖
    繪圖的最後一篇,這次以案例和代碼為主,總結平時最常使用的繪圖API,參考前幾天推送給大家的matplotlib繪圖60案例這本書籍。需要導入的模塊,matplotlib繪圖,numpy幾乎是必用的包。案例6散點圖1024個隨機點的散點圖# 隨機生成1024行2列的數據,就是1024個點(x,y)data = np.random.rand(1024, 2)# 繪製散點圖
  • 只要簡單幾步調整,matplotlib做出來的條形圖也很好看!
    有人說matplotlib做出來的圖很低級,早起想說,那是你不會配色本文講解如何調整色以及通過添加注釋,用matplotlib做出一張好看的柱狀圖,也是「早起Python」年度報告中的一幅圖。import matplotlibprint(matplotlib.
  • Matplotlib數據可視化:折線圖與散點圖
    from matplotlib import pyplot as pltimport numpy as npimport matplotlib as mplmpl.rcParams['font.sans-serif'] = ['SimHei']  # 中文字體支持
  • Python 數據分析:Matplotlib 繪圖
    簡介Matplotlib 是 Python 提供的一個繪圖庫,通過該庫我們可以很容易的繪製出折線圖、直方圖、散點圖、餅圖等豐富的統計圖,安裝使用 pip install matplotlib 命令即可,Matplotlib 經常會與 NumPy 一起使用。
  • 一圖看懂箱線圖,順便帶你鞏固matplotlib繪圖流程!
    今天本文就通過下面這張圖簡單講一下箱線圖沒錯,這張圖也是用matplotlib一點一點的繪製出來的,所以順便鞏固一下matplotlib繪圖的綜合應用。箱線圖怎麼看?而其餘幾組數據則比較集中,並且第1、2、5、6、7、8組數據存在異常值等等這個異常值,並不是說出現異常的數值,而是從統計學的角度,我們將偏離大多數點位置的值視為異常值!
  • python matplotlib模塊
    調用畫圖方法調用pyplot模塊的繪圖方法畫出圖像,基本的畫圖方法有:plot(將各個點連成曲線圖)、scatter(畫散點圖),bar(畫條形圖)還有更多方法。(x,y,color="r",s=12,linewidth=1.0,linestyle='--',lable=」散點圖」)L3 , =plt.bar(x,y, color='green')3) 設置圖標籤# 使用legend繪製多條曲線plt.legend(handles=[L1,L2], labels=[」曲線圖」, 」散點圖」], loc
  • Matplotlib 數據可視化基本操作
    最近著手to C業務,藉助Python進行數據分析,涉及到數據可視化的一些內容,跟著網上的教程敲了敲代碼本文內容:csv文件數據讀取與信息查閱;柱形圖、折線圖、餅圖、箱型圖、散點圖、直方圖繪製data讀取與顯示 #  import packagesimport pandas as pd import
  • 動態曲線圖(linechart)--Matplotlib繪製
    動態圖表的繪製主要在於折線圖和散點圖的繪製,我們採用的依舊還是面向對象式繪圖方式,這裡建議繪製較為複雜的圖表時多採用此方法進行繪製。完整繪圖過程如下:散點圖:ax.scatter(idx.tolist()[-1],data_test['china'].tolist()[-1],color='#FF5872',edgecolor ='black',s = 280,lw = 2.5,zorder =4)#散點圖散點圖的繪製則需知道我們只需要繪製
  • matplotlib的Python數據可視化和探索——入門指南
    Matplotlib提供了一種簡單而全面的可視化方法來介紹我們的發現。我們將在本教程中很快看到,有很多可視化可供選擇,以展示我們的結果。從直方圖到散點圖,matplotlib設置了一系列顏色,主題,調色板和其他選項以自定義和個性化我們的圖。
  • 【數據分析】Matplotlib
    安裝方式:pip install matplotlib引用方法:import matplotlib.pyplot雖然seaborn這些庫和pandas的內置繪圖函數能夠處理許多普通的繪圖任務,如果需要自定義一些高級功能的話就必須要matplotlib API.
  • matplotlib庫繪製折線圖、子圖及條形圖
    前面幾節我們學習了python中numpy和pandas庫的一些常用操作,接下來幾個章節,我們學習一個非常重要的數據可視化庫matplotlib(seaborn庫也有有所涉及)。這裡我們需要知道,matplotlib庫主要繪製一些2D圖形和簡單的3D圖形。
  • matplotlib基礎
    >matplotlib 架構matplotlib 的主要任務之一,就是提供一套表示和操作圖形對象(主要對象)以及它的內部對象的函數和工具。as npimport matplotlib.pyplot as pltplt.figure(figsize = (16, 12))x = np.array([1, 2, 3, 4, 5, 6, 7, 8])y = np.array([3, 5, 7, 6, 2, 6, 10, 15])plt.plot(x, y, 'r', lw = 5) # 指定線的顏色和寬度x = np.array
  • Python 繪圖庫 Matplotlib 入門教程
    Matplotlib適用於各種環境,包括:Python腳本IPython shellJupyter notebookWeb應用伺服器用戶圖形界面工具包使用Matplotlib,能夠的輕易生成各種類型的圖像,例如:直方圖,波譜圖,條形圖,散點圖等。
  • 這麼用MatPlotLib視覺化呈現數據,你值得擁有!
    繪製餅狀圖#Here we import ther matplotlibpackage with alias name as pltimport matplotlib.pyplot as pltplt.bar([1,3,5,7,9],[5,2,7,8,2]