Python圖表數據可視化Seaborn:3. 線性關系數據| 時間線圖表| 熱圖


 

1. 線性關系數據可視化

lmplot( )

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
% matplotlib inline

sns.set_style("darkgrid")
sns.set_context("paper")
# 設置風格、尺度

import warnings
warnings.filterwarnings('ignore') 
# 不發出警告
# 基本用法

tips = sns.load_dataset("tips")
print(tips.head())
# 加載數據

sns.lmplot(x="total_bill", y="tip", hue = 'smoker',data=tips,palette="Set1",
           ci = 70,   # 誤差值
           size = 5,  # 圖表大小
           markers = ['+','o'],  # 點樣式
           )

# 拆分多個表格

sns.lmplot(x="total_bill", y="tip", col="smoker", data=tips)

# 多圖表1

sns.lmplot(x="size", y="total_bill", hue="day", col="day",data=tips, 
           aspect=0.6,    # 長寬比
           x_jitter=.30,  # 給x或者y軸隨機增加噪音點
           col_wrap=4,    # 每行的列數
          )

# 多圖表2

sns.lmplot(x="total_bill", y="tip", row="sex", col="time",data=tips, size=4)
# 行為sex字段,列為time字段
# x軸total_bill, y軸tip

# 非線性回歸

sns.lmplot(x="total_bill", y="tip",data=tips,
           order = 2) #可以做更高階的回歸;2就是按照2次方做回歸;

2. 時間線圖表

 sns. tsplot( )

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
% matplotlib inline

sns.set_style("darkgrid")
sns.set_context("paper")
# 設置風格、尺度

import warnings
warnings.filterwarnings('ignore') 
# 不發出警告
# 1、時間線圖表 - tsplot()
# 簡單示例

x = np.linspace(0, 15, 31)
data = np.sin(x) + np.random.rand(10, 31) + np.random.randn(10, 1)
print(data.shape)
print(pd.DataFrame(data).head()) #每一行數據是一個變量,31列是代表有31天或31種情況下的觀測值。
# 創建數

sns.tsplot(data=data,
           err_style="ci_band",   # 誤差數據風格,可選:ci_band, ci_bars, boot_traces, boot_kde, unit_traces, unit_points
           interpolate=True,      # 是否連線
           ci = [40,70,90],       # 設置誤差 置信區間 
           color = 'g'            # 設置顏色
          )

一個變量里邊有10個變量,每個變量里邊有31個觀測值

 10個變量,做了一個均值的估計,其他31個維度代表它的變化程度。

# 1、時間線圖表 - tsplot()
# 簡單示例

sns.tsplot(data=data, err_style="boot_traces", 
           n_boot=300   # 迭代次數,就是有多少個線;
          )

# 1、時間線圖表 - tsplot()
# 參數設置

gammas = sns.load_dataset("gammas")
print(gammas.head())
print('數據量為:%i條' % len(gammas))
print('timepoint為0.0時的數據量為:%i條' % len(gammas[gammas['timepoint'] == 0]))
print('timepoint共有%i個唯一值' % len(gammas['timepoint'].value_counts()))
# print(gammas['timepoint'].value_counts())  # 查看唯一值具體信息
# 導入數據

sns.tsplot(time="timepoint",     # 時間數據,x軸
           value="BOLD signal",  # y軸value
           unit="subject",       # 
           condition="ROI",      # 分類
           data=gammas)
# gammas[['ROI', 'subject']]

3.熱圖

sns.heatmap()

# 2、熱圖 - heatmap()
# 簡單示例
df = pd.DataFrame(np.random.rand(10,12))
# 創建數據 - 10*12圖表

sns.heatmap(df,    # 加載數據
            vmin=0, vmax=1   # 設置圖例最大最小值
            )

# 2、熱圖 - heatmap()
# 參數設置

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers") 
print(flights.head())
# 加載數據
sns.heatmap(flights,
            annot = True,      # 是否顯示數值
            fmt = 'd',         # 格式化字符串
            linewidths = 0.2,  # 格子邊線寬度
            #center = 100,      # 調色盤的色彩中心值,若沒有指定,則以cmap為主
            #cmap = 'Reds',     # 設置調色盤
            cbar = True,       # 是否顯示圖例色帶
            #cbar_kws={"orientation": "horizontal"},   # 是否橫向顯示圖例色帶
            #square = True,     # 是否正方形顯示圖表
           )
flights.head()

# 2、熱圖 - heatmap()   繪制半邊熱圖

sns.set(style="white")
# 設置風格

rs = np.random.RandomState(33)
d = pd.DataFrame(rs.normal(size=(100, 26)))
corr = d.corr() #26*26的一個正方數據;     # 求解相關性矩陣表格
# 創建數據
mask = np.zeros_like(corr, dtype=np.bool)
mask[np.triu_indices_from(mask)] = True
# 設置一個“上三角形”蒙版

cmap = sns.diverging_palette(220, 10, as_cmap=True)
# 設置調色盤

sns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, center=0,
            square=True, linewidths=0.2)
# 生成半邊熱圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM