Python Pandas(11):Pandas 数据可视化

打印 上一主题 下一主题

主题 1024|帖子 1024|积分 3072

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        数据可视化是数据分析中的紧张环节,它资助我们更好地理解和表明数据的模式、趋势和关系。通过图形、图表等情势,数据可视化将复杂的数字和统计信息转化为易于理解的图像,从而便于做出决议。Pandas 提供了与 Matplotlib 和 Seaborn 等可视化库的集成,使得数据的可视化变得简单而高效。在 Pandas 中,数据可视化功能主要通过 DataFrame.plot() 和 Series.plot() 方法实现,这些方法实际上是对 Matplotlib 库的封装,简化了图表的绘制过程。
图表范例描述方法折线图展示数据随时间或其他连续变量的变化趋势df.plot(kind='line')柱状图比较差别种别的数据df.plot(kind='bar')水平柱状图比较差别种别的数据,但柱子水平排列df.plot(kind='barh')直方图显示数据的分布df.plot(kind='hist')散点图展示两个数值型变量之间的关系df.plot(kind='scatter', x='col1', y='col2')箱线图显示数据分布,包罗中位数、四分位数等df.plot(kind='box')密度图展示数据的密度分布df.plot(kind='kde')饼图显示差别部门在整体中的占比df.plot(kind='pie')区域图展示数据的累计数值df.plot(kind='area') 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(kind='line')柱状图用于显示种别之间的比较数据df.plot(kind='bar')水平柱状图与柱状图类似,但柱子是水平的df.plot(kind='barh')直方图用于显示数据的分布(频率分布)df.plot(kind='hist')散点图用于显示两个数值变量之间的关系df.plot(kind='scatter', x='col1', y='col2')箱线图用于显示数据的分布、异常值及四分位数df.plot(kind='box')密度图用于显示数据的密度分布df.plot(kind='kde')饼图用于显示各部门占总体的比例df.plot(kind='pie')区域图用于显示累计数值的图表(类似于折线图,但填充了颜色)df.plot(kind='area') 2 数据可视化示例

2.1 折线图 (Line Plot)

        折线图通常用于展示数据随时间的变化趋势。
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 示例数据
  4. data = {'Year': [2015, 2016, 2017, 2018, 2019, 2020],
  5.         'Sales': [100, 150, 200, 250, 300, 350]}
  6. df = pd.DataFrame(data)
  7. # 绘制折线图
  8. df.plot(kind='line', x='Year', y='Sales', title='Sales Over Years', xlabel='Year', ylabel='Sales', figsize=(10, 6))
  9. plt.show()
复制代码

2.2 柱状图 (Bar Chart)

        柱状图用于展示差别种别之间的比较,尤实在用于离散数据。
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 示例数据
  4. data = {'Category': ['A', 'B', 'C', 'D'],
  5.         'Value': [10, 15, 7, 12]}
  6. df = pd.DataFrame(data)
  7. # 绘制柱状图
  8. df.plot(kind='bar', x='Category', y='Value', title='Category Values', xlabel='Category', ylabel='Value', figsize=(8, 5))
  9. plt.show()
复制代码

2.3 散点图 (Scatter Plot)

        散点图用于展示两个数值变量之间的关系。
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 示例数据
  4. data = {'Height': [150, 160, 170, 180, 190],
  5.         'Weight': [50, 60, 70, 80, 90]}
  6. df = pd.DataFrame(data)
  7. # 绘制散点图
  8. df.plot(kind='scatter', x='Height', y='Weight', title='Height vs Weight', xlabel='Height (cm)', ylabel='Weight (kg)',
  9.         figsize=(8, 5))
  10. plt.show()
复制代码

2.4 直方图 (Histogram)

        直方图用于显示数据的分布,特殊是用于描述数据的频率分布。
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 示例数据
  4. data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
  5. df = pd.DataFrame(data)
  6. # 绘制直方图
  7. df.plot(kind='hist', y='Scores', bins=5, title='Scores Distribution', xlabel='Scores', figsize=(8, 5))
  8. plt.show()
复制代码

2.5 箱线图 (Box Plot)

        箱线图用于展示数据的分布情况,包罗中位数、四分位数以及异常值。
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 示例数据
  4. data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
  5. df = pd.DataFrame(data)
  6. # 绘制箱线图
  7. df.plot(kind='box', title='Scores Boxplot', ylabel='Scores', figsize=(8, 5))
  8. plt.show()
复制代码

2.6 饼图 (Pie Chart)

        饼图用于展示各部门占总体的比例。
  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. # 示例数据
  4. data = {'Category': ['A', 'B', 'C', 'D'],
  5.         'Value': [10, 15, 7, 12]}
  6. df = pd.DataFrame(data)
  7. # 绘制饼图
  8. df.plot(kind='pie', y='Value', labels=df['Category'], autopct='%1.1f%%', title='Category Proportions', figsize=(8, 5))
  9. plt.show()
复制代码

3 Seaborn 可视化

        Seaborn 是基于 Matplotlib 的高级数据可视化库,提供了更漂亮、更易用的图表和更丰富的统计图表范例。在 Pandas 中,可以直接与 Seaborn 配合使用。
3.1 热力图(Heatmap)

  1. import pandas as pd
  2. import seaborn as sns
  3. import matplotlib.pyplot as plt
  4. # 示例数据
  5. data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
  6. df = pd.DataFrame(data)
  7. # 绘制热力图
  8. sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
  9. plt.show()
复制代码

3.2 散点图矩阵

        数据集中所有数值特性之间的散点图矩阵:
  1. import pandas as pd
  2. import seaborn as sns
  3. import matplotlib.pyplot as plt
  4. # 示例数据
  5. data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
  6. df = pd.DataFrame(data)
  7. sns.pairplot(df)
  8. plt.show()
复制代码

4 Matplotlib 高级自定义

        除了使用 Pandas 提供的 plot() 方法外,Matplotlib 还可以提供更灵活的自定义功能,例如添加标题、标签、设置图表风格、调整坐标轴等。
  1. import pandas as pd
  2. import seaborn as sns
  3. import matplotlib.pyplot as plt
  4. # 示例数据
  5. data = {'Year': [2015, 2016, 2017, 2018, 2019],
  6.         'Sales': [100, 150, 200, 250, 300]}
  7. df = pd.DataFrame(data)
  8. # 绘制折线图
  9. plt.plot(df['Year'], df['Sales'], color='blue', marker='o')
  10. # 自定义
  11. plt.title('Sales Over Years')
  12. plt.xlabel('Year')
  13. plt.ylabel('Sales')
  14. plt.grid(True)
  15. # 显示
  16. plt.show()
复制代码




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表