台州网站排名优化价格,领卷网站如何做代理,买服务器做网站主机,科技展厅设计方案数据可视化是数据分析中的重要环节#xff0c;它帮助我们更好地理解和解释数据的模式、趋势和关系。通过图形、图表等形式#xff0c;数据可视化将复杂的数字和统计信息转化为易于理解的图像#xff0c;从而便于做出决策。Pandas 提供了与 Matplotlib 和 Seaborn 等可视化库… 数据可视化是数据分析中的重要环节它帮助我们更好地理解和解释数据的模式、趋势和关系。通过图形、图表等形式数据可视化将复杂的数字和统计信息转化为易于理解的图像从而便于做出决策。Pandas 提供了与 Matplotlib 和 Seaborn 等可视化库的集成使得数据的可视化变得简单而高效。在 Pandas 中数据可视化功能主要通过 DataFrame.plot() 和 Series.plot() 方法实现这些方法实际上是对 Matplotlib 库的封装简化了图表的绘制过程。
图表类型描述方法折线图展示数据随时间或其他连续变量的变化趋势df.plot(kindline)柱状图比较不同类别的数据df.plot(kindbar)水平柱状图比较不同类别的数据但柱子水平排列df.plot(kindbarh)直方图显示数据的分布df.plot(kindhist)散点图展示两个数值型变量之间的关系df.plot(kindscatter, xcol1, ycol2)箱线图显示数据分布包括中位数、四分位数等df.plot(kindbox)密度图展示数据的密度分布df.plot(kindkde)饼图显示不同部分在整体中的占比df.plot(kindpie)区域图展示数据的累计数值df.plot(kindarea)
1 Pandas 数据可视化概述 Pandas 提供的 plot() 方法可以轻松地绘制不同类型的图表包括折线图、柱状图、直方图、散点图等。plot() 方法有很多参数可以定制图表的样式、颜色、标签等。
1.1 基本的 plot() 方法
参数说明kind图表类型支持 line, bar, barh, hist, box, kde, density, area, pie 等类型x设置 x 轴的数据列y设置 y 轴的数据列title图表的标题xlabelx 轴的标签ylabely 轴的标签color设置图表的颜色figsize设置图表的大小宽, 高legend是否显示图例
1.2 常用图表类型
图表类型描述常用用法折线图用于显示随时间变化的数据趋势df.plot(kindline)柱状图用于显示类别之间的比较数据df.plot(kindbar)水平柱状图与柱状图类似但柱子是水平的df.plot(kindbarh)直方图用于显示数据的分布频率分布df.plot(kindhist)散点图用于显示两个数值变量之间的关系df.plot(kindscatter, xcol1, ycol2)箱线图用于显示数据的分布、异常值及四分位数df.plot(kindbox)密度图用于显示数据的密度分布df.plot(kindkde)饼图用于显示各部分占总体的比例df.plot(kindpie)区域图用于显示累计数值的图表类似于折线图但填充了颜色df.plot(kindarea)
2 数据可视化示例
2.1 折线图 (Line Plot) 折线图通常用于展示数据随时间的变化趋势。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data {Year: [2015, 2016, 2017, 2018, 2019, 2020],Sales: [100, 150, 200, 250, 300, 350]}
df pd.DataFrame(data)# 绘制折线图
df.plot(kindline, xYear, ySales, titleSales Over Years, xlabelYear, ylabelSales, figsize(10, 6))
plt.show()2.2 柱状图 (Bar Chart) 柱状图用于展示不同类别之间的比较尤其适用于离散数据。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data {Category: [A, B, C, D],Value: [10, 15, 7, 12]}
df pd.DataFrame(data)# 绘制柱状图
df.plot(kindbar, xCategory, yValue, titleCategory Values, xlabelCategory, ylabelValue, figsize(8, 5))
plt.show() 2.3 散点图 (Scatter Plot) 散点图用于展示两个数值变量之间的关系。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data {Height: [150, 160, 170, 180, 190],Weight: [50, 60, 70, 80, 90]}
df pd.DataFrame(data)# 绘制散点图
df.plot(kindscatter, xHeight, yWeight, titleHeight vs Weight, xlabelHeight (cm), ylabelWeight (kg),figsize(8, 5))
plt.show()2.4 直方图 (Histogram) 直方图用于显示数据的分布特别是用于描述数据的频率分布。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data {Scores: [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df pd.DataFrame(data)# 绘制直方图
df.plot(kindhist, yScores, bins5, titleScores Distribution, xlabelScores, figsize(8, 5))
plt.show()2.5 箱线图 (Box Plot) 箱线图用于展示数据的分布情况包括中位数、四分位数以及异常值。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data {Scores: [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df pd.DataFrame(data)# 绘制箱线图
df.plot(kindbox, titleScores Boxplot, ylabelScores, figsize(8, 5))
plt.show()2.6 饼图 (Pie Chart) 饼图用于展示各部分占总体的比例。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data {Category: [A, B, C, D],Value: [10, 15, 7, 12]}
df pd.DataFrame(data)# 绘制饼图
df.plot(kindpie, yValue, labelsdf[Category], autopct%1.1f%%, titleCategory Proportions, figsize(8, 5))
plt.show()3 Seaborn 可视化 Seaborn 是基于 Matplotlib 的高级数据可视化库提供了更漂亮、更易用的图表和更丰富的统计图表类型。在 Pandas 中可以直接与 Seaborn 配合使用。
3.1 热力图Heatmap
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt# 示例数据
data {A: [1, 2, 3], B: [4, 5, 6], C: [7, 8, 9]}
df pd.DataFrame(data)# 绘制热力图
sns.heatmap(df.corr(), annotTrue, cmapcoolwarm)
plt.show()3.2 散点图矩阵 数据集中所有数值特征之间的散点图矩阵:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt# 示例数据
data {A: [1, 2, 3], B: [4, 5, 6], C: [7, 8, 9]}
df pd.DataFrame(data)sns.pairplot(df)
plt.show()4 Matplotlib 高级自定义 除了使用 Pandas 提供的 plot() 方法外Matplotlib 还可以提供更灵活的自定义功能例如添加标题、标签、设置图表风格、调整坐标轴等。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt# 示例数据
data {Year: [2015, 2016, 2017, 2018, 2019],Sales: [100, 150, 200, 250, 300]}
df pd.DataFrame(data)# 绘制折线图
plt.plot(df[Year], df[Sales], colorblue, markero)# 自定义
plt.title(Sales Over Years)
plt.xlabel(Year)
plt.ylabel(Sales)
plt.grid(True)# 显示
plt.show()