最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python數(shù)據(jù)可視化之從單變量到多變量的方法

 更新時(shí)間:2026年01月08日 08:36:58   作者:紙上筆下  
Python憑借其強(qiáng)大的可視化庫(如Matplotlib、Seaborn)成為進(jìn)行EDA的首選工具,本文基于一份實(shí)用的Python數(shù)據(jù)可視化速查表,系統(tǒng)介紹從單變量到多變量、從時(shí)間序列到文本數(shù)據(jù)的可視化方法,需要的朋友可以參考下

Python憑借其強(qiáng)大的可視化庫(如Matplotlib、Seaborn)成為進(jìn)行EDA的首選工具。本文基于一份實(shí)用的“Python數(shù)據(jù)可視化速查表”,系統(tǒng)介紹從單變量到多變量、從時(shí)間序列到文本數(shù)據(jù)的可視化方法,并提供代碼示例與擴(kuò)展解讀,助你高效完成數(shù)據(jù)探索。

1. 單變量分析:了解單個(gè)變量分布

單變量分析旨在理解數(shù)據(jù)集中單個(gè)變量的分布特征,適用于數(shù)值型和分類型數(shù)據(jù)。

常用圖表與代碼示例

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 示例數(shù)據(jù)框
df = pd.DataFrame({'col': [1, 2, 2, 3, 3, 3, 4, 4, 5]})

# 1. 直方圖:查看數(shù)值分布
df.hist()
plt.title("數(shù)值分布直方圖")
plt.show()

# 2. 箱線圖:查看分布與離群點(diǎn)(原文borglot應(yīng)為boxplot)
sns.boxplot(data=df, y='col')  # 展示數(shù)值列col的分布
plt.title("箱線圖展示分布與異常值")
plt.show()

# 3. 核密度估計(jì)圖:平滑的概率密度曲線
sns.kdeplot(data=df['col'])
plt.title("核密度估計(jì)圖")
plt.show()

# 4. 條形圖:適用于分類數(shù)據(jù)頻次統(tǒng)計(jì)
df['col'].value_counts().plot(kind='bar')
plt.title("分類頻次條形圖")
plt.xlabel("類別")
plt.ylabel("頻次")
plt.show()

適用場景

  • 直方圖:了解數(shù)值分布是否正態(tài)、偏斜
  • 箱線圖:快速發(fā)現(xiàn)異常值
  • 核密度圖:平滑展示分布趨勢
  • 條形圖:展示類別頻次

2. 雙變量分析:探索兩個(gè)變量間關(guān)系

雙變量分析用于探索兩個(gè)變量之間的關(guān)聯(lián),包括數(shù)值-數(shù)值、數(shù)值-類別等組合。

# 示例數(shù)據(jù)
df = pd.DataFrame({
    'x': [1, 2, 3, 4, 5],
    'y': [2, 4, 6, 8, 10],
    'category': ['A', 'B', 'A', 'B', 'A']
})

# 1. 散點(diǎn)圖:兩個(gè)數(shù)值變量關(guān)系
sns.scatterplot(data=df, x='x', y='y')
plt.title("散點(diǎn)圖:x與y的關(guān)系")
plt.show()

# 2. 帶回歸線的散點(diǎn)圖
sns.regplot(data=df, x='x', y='y')
plt.title("帶線性回歸的散點(diǎn)圖")
plt.show()

# 3. 條形圖:類別與數(shù)值的對比
sns.barplot(x='category', y='y', data=df)
plt.title("不同類別的y值對比")
plt.show()

# 4. 小提琴圖:類別下的分布與密度
sns.violinplot(data=df, x='category', y='y')
plt.title("小提琴圖:類別y的分布")
plt.show()

# 5. 箱線圖(原文borglet應(yīng)為boxplot):比較類別間分布
sns.boxplot(x='category', y='y', data=df)
plt.title("箱線圖:類別間分布比較")
plt.show()

3. 多變量分析:三維及以上關(guān)系探索

當(dāng)我們需要同時(shí)考察三個(gè)或更多變量時(shí),多變量可視化工具顯得尤為重要。

# 示例數(shù)據(jù)
df = pd.DataFrame({
    'x': [1, 2, 3, 4, 5],
    'y': [2, 4, 6, 8, 10],
    'z': [5, 4, 3, 2, 1],
    'type': ['T1', 'T2', 'T1', 'T2', 'T1']
})

# 1. 散點(diǎn)圖矩陣:所有數(shù)值變量兩兩關(guān)系
sns.pairplot(df)
plt.suptitle("散點(diǎn)圖矩陣", y=1.02)
plt.show()

# 2. 相關(guān)熱圖:變量間相關(guān)性強(qiáng)度
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.title("變量相關(guān)性熱圖")
plt.show()

# 3. 聯(lián)合分布圖:散點(diǎn)圖+邊緣分布
sns.jointplot(data=df, x='x', y='y')
plt.show()

# 4. 三變量散點(diǎn)圖(顏色表示第三維)
plt.scatter(df['x'], df['y'], c=df['z'], cmap='viridis')
plt.colorbar(label='z值')
plt.title("三變量散點(diǎn)圖(顏色表示z)")
plt.show()

# 5. 分類著色散點(diǎn)圖
sns.scatterplot(data=df, x='x', y='y', hue='type')
plt.title("按類別著色的散點(diǎn)圖")
plt.show()

4. 時(shí)間序列分析:趨勢、周期與異常

時(shí)間序列數(shù)據(jù)常見于金融、氣象、日志等領(lǐng)域,可視化有助于識(shí)別趨勢、季節(jié)性和異常。

# 示例時(shí)間序列數(shù)據(jù)
df = pd.DataFrame({
    'date': pd.date_range('2023-01-01', periods=100, freq='D'),
    'value': np.random.randn(100).cumsum() + 50
})

# 1. 簡單時(shí)間序列圖
df.plot(x='date', y='value')
plt.title("時(shí)間序列趨勢圖")
plt.xlabel("日期")
plt.ylabel("數(shù)值")
plt.show()

# 2. 移動(dòng)平均圖(窗口為7天)
df.set_index('date')['value'].rolling(window=7).mean().plot()
plt.title("7天移動(dòng)平均圖")
plt.show()

# 3. 時(shí)間序列分解(需statsmodels庫)
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(df.set_index('date')['value'], model='additive', period=30)
result.plot()
plt.suptitle("時(shí)間序列分解(趨勢+季節(jié)+殘差)", y=1.02)
plt.show()

# 4. 帶置信區(qū)間的折線圖
sns.lineplot(data=df, x='date', y='value')
plt.title("帶置信區(qū)間的時(shí)間序列圖")
plt.show()

5. 文本數(shù)據(jù)分析:詞頻、主題與情感

文本數(shù)據(jù)可視化常用于自然語言處理(NLP),幫助理解詞頻分布、主題結(jié)構(gòu)等。

from wordcloud import WordCloud
import nltk
from nltk.probability import FreqDist

# 示例文本
text = "data science machine learning python visualization analysis exploration"

# 1. 詞云圖
wordcloud = WordCloud(width=800, height=400).generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title("詞云圖")
plt.show()

# 2. 詞頻分布圖
words = text.split()
fdist = FreqDist(words)
fdist.plot(30, cumulative=False)  # 顯示前30個(gè)詞
plt.title("詞頻分布圖")
plt.show()

# 3. 詞頻條形圖
sns.barplot(x=list(fdist.keys())[:10], y=list(fdist.values())[:10])
plt.title("前10高頻詞條形圖")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

6. 圖表自定義:美化與標(biāo)注

好的可視化不僅需要正確表達(dá)信息,還需要良好的可讀性與美觀性。

# 示例圖表自定義
plt.figure(figsize=(10, 6))  # 設(shè)置圖像尺寸
sns.scatterplot(data=df, x='x', y='y')
plt.title("這是一個(gè)帶自定義樣式的散點(diǎn)圖", fontsize=16)
plt.xlabel("X軸標(biāo)簽", fontsize=12)
plt.ylabel("Y軸標(biāo)簽", fontsize=12)
plt.xticks(rotation=45)  # X軸標(biāo)簽旋轉(zhuǎn)45度
plt.grid(True, linestyle='--', alpha=0.5)
plt.tight_layout()  # 自動(dòng)調(diào)整子圖間距
plt.show()

7. 圖表保存與展示

# 保存圖表到文件
plt.savefig("scatter_plot.png", dpi=300, bbox_inches='tight')
print("圖表已保存為 scatter_plot.png")

# 展示圖表
plt.show()

# 關(guān)閉當(dāng)前圖像釋放內(nèi)存
plt.close()

探索性數(shù)據(jù)分析流程示意圖

以下Mermaid流程圖展示了典型的EDA可視化流程:

通過本指南,你可以系統(tǒng)掌握Python在探索性數(shù)據(jù)分析中的可視化工具與技巧。無論是單變量分布探查,還是多變量關(guān)系挖掘,或是時(shí)間序列與文本數(shù)據(jù)的可視化,合理運(yùn)用這些圖表工具將極大提升你的數(shù)據(jù)分析效率與洞察力。建議結(jié)合實(shí)際項(xiàng)目多加練習(xí),形成自己的可視化工作流。

以上就是Python數(shù)據(jù)可視化之從單變量到多變量的方法的詳細(xì)內(nèi)容,更多關(guān)于Python單變量到多變量可視化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論

桐城市| 石台县| 南昌市| 宁海县| 合作市| 永泰县| 墨竹工卡县| 宜川县| 嘉荫县| 岳阳市| 开远市| 定兴县| 大田县| 中江县| 万宁市| 桃园县| 清河县| 镇赉县| 东宁县| 文化| 漳浦县| 仁化县| 岳阳市| 思南县| 三亚市| 开封县| 临泉县| 富阳市| 禄劝| 南涧| 贡觉县| 宣恩县| 将乐县| 太仆寺旗| 孝昌县| 杭州市| 台东市| 东兴市| 宁国市| 中西区| 泰安市|