添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

matplotlib 是python中最常用的数据可视化工具,只要涉及到数据处理,都免不了或多或少和 Numpy 以及 Matplotlib 打交道,而且这两个工具笔者常常使用chatgpt大法来写,但是为了提高效率,常用图片还是最好记忆下来以便快速使用。

数据直方图

数据直方图(Histogram)通过将数据划分为区间或分段,并表示每个分段内的数据点数量,让我们可以检查数据的频率和分布情况。x 轴代表数值范围,y 轴代表频率或计数。

import matplotlib.pyplot as plt import numpy as np # Generating random data data = np . random . normal(loc = 0 , scale = 1 , size = 1000 ) # Creating a histogram plt . hist(data, bins = 30 , alpha = 0.7 , color = 'blue' ) plt . title( 'Histogram of Normally Distributed Data' ) plt . xlabel( 'Value' ) plt . ylabel( 'Frequency' ) plt . grid( True ) plt . show()

箱形图(Box Plots)提供了数据集分布的简明摘要。它们分别显示最小值、第一四分位数 ($Q_1$)、中位数 ($Q_2$)、第三四分位数 ($Q_3$) 和最大值。方框表示四分位数间距 (IQR),即第一$Q_1$和第三$Q_3$四分位数之间的范围。方框的高度表示中间50%数据的范围。

import matplotlib.pyplot as plt import seaborn as sns import numpy as np # Generating random data data = np . random . normal(loc = 0 , scale = 1 , size = ( 100 , 3 )) # Creating a box plot sns . boxplot(data = data, orient = 'h' , palette = "Set2" ) plt . title( 'Box Plot of Randomly Generated Data' ) plt . show()

核密度估计图

核密度估计 (KDE) 是一种非参数技术,用于估计数据集的概率密度函数。通过提供近似分布的平滑曲线,KDE 有助于发现潜在的模式。KDE 图可与直方图结合使用,以更清晰地直观显示分布情况。

import matplotlib.pyplot as plt import seaborn as sns import numpy as np # Generating random data data = np . random . normal(loc = 0 , scale = 1 , size = 1000 ) # Creating a KDE plot sns . kdeplot(data, shade = True , color = 'green' ) plt . title( 'Kernel Density Estimation of Data' ) plt . xlabel( 'Value' ) plt . ylabel( 'Density' ) plt . show()

小提琴图结合了箱形图和核密度函数估计图的优点。它们通过在箱形图中央的两侧显示镜像密度图来紧凑地表示分布。小提琴图可以简明地显示分布的形状、数据集中程度和任何潜在的异常值。

import matplotlib.pyplot as plt import seaborn as sns import numpy as np # Generating random data data = np . random . normal(loc = 0 , scale = 1 , size = ( 100 , 2 )) # Creating a violin plot sns . violinplot(data = data, inner = "quartile" , palette = "Set3" ) plt . title( 'Violin Plot of Randomly Generated Data' ) plt . show()

蜂群图可以有效直观地显示分类数据和单个数据点的分布情况。它水平显示每个数据点,并在数据点重叠时进行抖动,从而更容易查看每个类别内的分布情况。当类别数量较少且每个类别内有大量数据点时,蜂群图尤其有用。

import seaborn as sns import matplotlib.pyplot as plt # Generating random categorical data categories = [ 'A' , 'B' , 'C' ] data = sns . load_dataset( "iris" ) # Creating a swarm plot sns . swarmplot(x = 'species' , y = 'petal_length' , data = data) plt . title( 'Swarm Plot of Iris Petal Length' ) plt . show()

Quantile-Quantile图又叫做QQ图,它主要用于评估分布与理论分布(如正态分布)的拟合程度。QQ 图将观测数据的量值与理论分布的预期量值进行比较。偏离直线表示偏离假定分布,有助于识别偏离正态分布或其他假定分布的情况。

import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
# Generating random data
data = np.random.normal(loc=0, scale=1, size=100)
# Creating QQ plot
stats.probplot(data, dist="norm", plot=plt)
plt.title('QQ Plot')
plt.show()
# Creating a heatmap
sns.heatmap(data, annot=True, cmap='coolwarm')
plt.title('Heatmap of Random Data')
plt.show()