import pandas as pd import numpy as npimport matplotlib.pyplot as plt%matplotlib inline 散點圖將所有的數據以點的形式展現在坐標繫上,可以觀察數據點的分布情況,在直角坐標系,可以推斷變量間的相關性,而在極坐標上,更側重數據的分布及離散情況。r = 2 * np.random.rand(100) theta = 2 * np.pi * np.random.rand(100) area = 100 * r**2 colors = theta ax = plt.subplot(111, projection='polar') c = ax.scatter(theta, r, c=colors, s=area, cmap='cool', alpha=0.75)plt.show()所作圖形如下所示,可以看到散點在極坐標上的分布情況,以及散點自身特點(如大小、顏色等)情況。註:上圖為隨機數據生成的圖,每次運行得到的圖形會有所不同。matplot的色彩映射請參考官方文檔:
https://www.matplotlib.org.cn/tutorials/colors/colormaps.html
柱狀圖是一種以長方形長度為變量的統計報告圖,由一系列高度不等的縱向條紋表示數據分布的情況。極坐標柱狀圖則是將柱形條顯示在極坐標中,其不僅保留了直角坐標系中數據變化趨勢的優點,而且圖形表達形式也更加美觀。N = 20theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
R = 10 * np.random.rand(N) width = np.pi / 8 * np.random.rand(N) ax = plt.subplot(111, projection = 'polar') bars = ax.bar(theta,R, width = width, bottom = 0.0) for r, bar in zip(radii, bars): bar.set_facecolor(plt.cm.viridis(r / 10.)) bar.set_alpha(0.5) plt.show()所作圖形如下所示,可以看到,圖形可以很清楚地傳達數據的大小,一如你在柱狀圖(條形圖)上看到的,你還可以嘗試在圓外添加標籤,使得柱條與標籤一一對應起來(不會的話請繼續閱讀下文極坐標雷達圖的繪製)。雷達圖也稱網絡圖,蜘蛛圖等,用於比較和評估多個指標之間的強弱關係。
#生成數據,注意第一組與最後一組數據是相同的,確保可以連成一個閉合多邊形country = ["CHINA", "USA", "JAPAN", "KOREA", "ENGLAND"]index1= [4.5, 4.9, 3.9, 2.8, 2.6, 4.5]index2= [4.9, 4.7, 4.5, 3.9, 3.8, 4.9] plt.figure(figsize = (10, 6)) plt.subplot(polar = True) theta = np.linspace(0, 2 * np.pi, len(index1)) #設置網格,標籤 lines, labels = plt.thetagrids(range(0, 360, int(360/len(country))), (country)) #繪製index1 plt.plot(theta,index1 )plt.fill(theta,index1 , 'g', alpha=0.1) #繪製index2plt.plot(theta, index2) # 添加圖例和標題plt.legend(labels=('index1', 'index2'), loc = 'best',frameon = True) plt.title("index1 vs index2");所作圖形如下所示,我們不僅可以看到同一個國家兩個指標index1與index2的大小關係,還可以看到不同國度同一個指標的大小情況。
►往期推薦
回復【Python】👉簡單有用易上手
回復【學術前沿】👉機器學習丨大數據
回復【數據資源】👉公開數據
回復【可視化】👉你心心念念的數據呈現
回復【老姚專欄】👉老姚趣談值得一看
►一周熱文
數據呈現 | R語言繪圖包大全(共40個包)
特別推薦丨老姚專欄:利用實驗方法進行因果識別的效度問題
工具&方法 | 黑科技!Excel中的rept函數也能繪圖
數據呈現 | 用 pyecharts 繪製時間線動圖
特別推薦 | 「正則表達式」在工業企業資料庫匹配中的運用(二)