做月季評分表的工程網(wǎng)站叫什么西安百度推廣開戶多少錢
目錄
1.Matplotlib基礎繪圖與定制化
1.1. 基礎繪圖
1.2. 定制化
2.Seaborn高級圖表類型與樣式設定
2.1. 高級圖表類型
?2.2. 樣式設定
3.實戰(zhàn):繪制多維度數(shù)據(jù)可視化報告
4.總結
1.?前言
????????在數(shù)據(jù)科學領域,數(shù)據(jù)可視化扮演著至關重要的角色。通過圖形化的展示,我們可以更直觀地理解數(shù)據(jù)的分布、趨勢以及不同變量之間的關系。Matplotlib和Seaborn是兩個在Python中非常流行的數(shù)據(jù)可視化庫,前者提供了基礎的繪圖功能,后者則提供了更高級的圖表類型和樣式設定。接下來,我們將通過實戰(zhàn)的方式,探索這兩個庫在數(shù)據(jù)可視化中的應用。?更多Python在人工智能中的應用案例,歡迎關注《Python人工智能實戰(zhàn)》欄目!
2.Matplotlib基礎繪圖與定制化
2.1. 基礎繪圖
????????Matplotlib是Python中最為基礎且功能強大的數(shù)據(jù)可視化庫之一。它可以繪制各種類型的圖表,如折線圖、散點圖、柱狀圖等,并且允許用戶進行高度定制。
????????以下是一些基本圖表的創(chuàng)建示例:
import matplotlib.pyplot as plt
import numpy as np# 創(chuàng)建數(shù)據(jù)
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)# 繪制折線圖
plt.plot(x, y, label='Sine Function')
plt.xlabel('Angle (radians)')
plt.ylabel('sin(x)')
plt.legend()
plt.show() # 顯示圖形# 繪制散點圖
plt.scatter(x, np.cos(x), label='Cosine Function')
plt.xlabel('Angle (radians)')
plt.ylabel('cos(x)')
plt.legend()
plt.show()# 繪制直方圖
data = np.random.normal(loc=0, scale=1, size=1000)
plt.hist(data, bins=30, density=True, alpha=0.5, label='Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Density')
plt.legend()
plt.show()



?2.2. 定制化
????????Matplotlib允許對圖表的各個元素進行精細定制,包括顏色、線條樣式、字體、坐標軸、圖例、網(wǎng)格等。以下是對折線圖進行定制的例子:
import matplotlib.pyplot as plt
import numpy as npx = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)# 自定義顏色、線寬、線型
plt.plot(x, y, color='crimson', linewidth=2.5, linestyle='--')# 設置坐標軸范圍、刻度
plt.xlim([0, 2*np.pi])
# 使用LaTeX格式顯示π
plt.xticks((-np.pi, -np.pi/2, np.pi/2, np.pi),(r'$\pi$', r'$-\frac{\pi}{2}$', r'$\frac{\pi}{2}$', r'$\pi$'))
# 添加圖例、標題、網(wǎng)格
plt.legend(['Sine Function'])
plt.title('Customized Sine Plot')
plt.grid(True, linestyle='dashed', alpha=0.9)# 修改字體、背景色
plt.rcParams['font.family'] = 'Arial'
plt.rcParams['axes.facecolor'] = 'lightgoldenrodyellow'plt.show()

3.Seaborn高級圖表類型與樣式設定
????????Seaborn是基于Matplotlib的高級統(tǒng)計圖形庫,提供更高級別的接口和更美觀的默認樣式。它特別擅長展示多變量數(shù)據(jù)的復雜關系。
3.1. 高級圖表類型
- 線性回歸圖:展示兩個連續(xù)變量之間的線性關系及其置信區(qū)間。
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pdtips = sns.load_dataset("tips")sns.lmplot(x="total_bill", y="tip", data=tips, hue="day", palette="muted")
plt.show()

- 熱力圖:展示數(shù)據(jù)的二維矩陣,用顏色強度表示數(shù)值大小。
import seaborn as sns
import pandas as pd
from matplotlib import pyplot as plt
tips = sns.load_dataset("tips")
# pandas2.0版本后,原來corr函數(shù)自動忽略字符串等非浮點數(shù)的特性被修改。現(xiàn)在需要加上numeric_only=True才會忽略字符串。
corr = tips.corr(numeric_only=True)
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.show()

?3.2. 樣式設定
????????Seaborn提供多種內(nèi)置樣式,可以通過set_theme()
函數(shù)全局設置:
import seaborn as sns
# style 包括:darkgrid、whitegrid、dark、white
sns.set_theme(style="darkgrid") # 設置為深色網(wǎng)格樣式# 繼續(xù)繪制圖表...
????????也可以針對特定圖表進行單獨樣式調整,如更改顏色映射、設置透明度等。
4.實戰(zhàn):繪制多維度數(shù)據(jù)可視化報告
????????以鳶尾花(Iris)數(shù)據(jù)集為例,我們使用Matplotlib與Seaborn聯(lián)合創(chuàng)建一份包含多種圖表的可視化報告:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
df = pd.DataFrame(data=np.c_[iris['data'], iris['target']],columns=iris['feature_names'] + ['species'])
print(df.columns)
# 分析不同物種花瓣長度與寬度的關系
sns.lmplot(x='sepal length (cm)', y='petal width (cm)', data=df, hue='species', col='species', ci=None)plt.suptitle('Petal Length vs Width by Species')# 展示所有特征間的相關性
corr = df.corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', linewidths=.5)
plt.title('Feature Correlation Matrix')# 繪制箱線圖對比各物種的萼片長度
sns.boxplot(x='species', y='sepal length (cm)', data=df, palette='Set2')
plt.title('Sepal Length Distribution Across Species')plt.show()
????????

????????這份報告包含了線性回歸圖、熱力圖以及箱線圖,分別展示了鳶尾花不同物種間花瓣長度與寬度的關系、所有特征的相關性,以及萼片長度在不同物種間的分布情況。通過這樣的多維度可視化,我們可以直觀地洞察數(shù)據(jù)內(nèi)在結構與關聯(lián),為后續(xù)數(shù)據(jù)分析提供有力支持。
5.總結
????????以上就是利用Matplotlib與Seaborn進行數(shù)據(jù)可視化的基礎操作與實戰(zhàn)應用,熟練掌握這些技巧將極大地提升數(shù)據(jù)洞察力和溝通效率。?更多Python在人工智能中的使用方法,歡迎關注《Python人工智能實戰(zhàn)》欄目!