通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

python如何对数据做图

python如何对数据做图

Python对数据做图的方法有很多,常用的有Matplotlib、Seaborn、Plotly、Bokeh、Pandas内置绘图功能。其中,Matplotlib是最基础、最灵活的绘图库,支持各种类型的图表;Seaborn基于Matplotlib,提供了更高级的接口和更美观的默认样式;Plotly适用于交互式图表;Bokeh也是用来创建交互式可视化的库,尤其适合大数据集;Pandas则内置了一些简单易用的绘图方法。下面重点介绍Matplotlib的使用方法。

一、MATPLOTLIB

Matplotlib是Python中最常用的绘图库之一,适用于各种类型的图表绘制。通过它可以创建静态、动画和交互式的可视化图表。

1、安装与基本使用

首先,确保已安装Matplotlib库。可以通过以下命令进行安装:

pip install matplotlib

安装完成后,可以通过以下代码绘制一个简单的折线图:

import matplotlib.pyplot as plt

准备数据

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

创建图形

plt.plot(x, y)

添加标题和标签

plt.title('Sample Plot')

plt.xlabel('X Axis')

plt.ylabel('Y Axis')

显示图形

plt.show()

2、图形类型

Matplotlib支持多种图形类型,以下是一些常用的图形类型:

  • 折线图:用于显示数据的趋势。
  • 散点图:用于显示两个变量之间的关系。
  • 柱状图:用于比较不同类别的数据。
  • 饼图:用于显示数据的比例。
  • 直方图:用于显示数据的分布。

下面是这些图形类型的示例代码:

import matplotlib.pyplot as plt

折线图

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

plt.plot(x, y)

plt.title('Line Plot')

plt.show()

散点图

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

plt.scatter(x, y)

plt.title('Scatter Plot')

plt.show()

柱状图

labels = ['A', 'B', 'C', 'D']

values = [10, 20, 30, 40]

plt.bar(labels, values)

plt.title('Bar Chart')

plt.show()

饼图

sizes = [15, 30, 45, 10]

labels = ['A', 'B', 'C', 'D']

plt.pie(sizes, labels=labels)

plt.title('Pie Chart')

plt.show()

直方图

data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]

plt.hist(data, bins=4)

plt.title('Histogram')

plt.show()

3、子图与布局

在一个图形中展示多个子图是很常见的需求。Matplotlib提供了subplot函数来创建子图。以下是一个包含四个子图的示例:

import matplotlib.pyplot as plt

创建一个包含4个子图的图形

fig, axs = plt.subplots(2, 2)

第一个子图

axs[0, 0].plot([1, 2, 3, 4], [1, 4, 9, 16])

axs[0, 0].set_title('First Plot')

第二个子图

axs[0, 1].scatter([1, 2, 3, 4], [1, 4, 9, 16])

axs[0, 1].set_title('Second Plot')

第三个子图

axs[1, 0].bar(['A', 'B', 'C', 'D'], [10, 20, 30, 40])

axs[1, 0].set_title('Third Plot')

第四个子图

axs[1, 1].hist([1, 2, 2, 3, 3, 3, 4, 4, 4, 4], bins=4)

axs[1, 1].set_title('Fourth Plot')

调整布局

plt.tight_layout()

显示图形

plt.show()

二、SEABORN

Seaborn是基于Matplotlib的高级绘图库,提供了更美观的默认样式和更简单的API,适用于统计数据的可视化。

1、安装与基本使用

首先,确保已安装Seaborn库。可以通过以下命令进行安装:

pip install seaborn

安装完成后,可以通过以下代码绘制一个简单的折线图:

import seaborn as sns

import matplotlib.pyplot as plt

准备数据

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

创建图形

sns.lineplot(x=x, y=y)

添加标题和标签

plt.title('Sample Plot')

plt.xlabel('X Axis')

plt.ylabel('Y Axis')

显示图形

plt.show()

2、图形类型

Seaborn支持多种图形类型,以下是一些常用的图形类型:

  • 折线图:用于显示数据的趋势。
  • 散点图:用于显示两个变量之间的关系。
  • 柱状图:用于比较不同类别的数据。
  • 箱线图:用于显示数据的分布。

下面是这些图形类型的示例代码:

import seaborn as sns

import matplotlib.pyplot as plt

折线图

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

sns.lineplot(x=x, y=y)

plt.title('Line Plot')

plt.show()

散点图

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

sns.scatterplot(x=x, y=y)

plt.title('Scatter Plot')

plt.show()

柱状图

data = {'Category': ['A', 'B', 'C', 'D'], 'Values': [10, 20, 30, 40]}

sns.barplot(x='Category', y='Values', data=data)

plt.title('Bar Chart')

plt.show()

箱线图

data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]

sns.boxplot(data=data)

plt.title('Box Plot')

plt.show()

三、PLOTLY

Plotly是一个用于创建交互式图表的库,支持多种图表类型和自定义功能。

1、安装与基本使用

首先,确保已安装Plotly库。可以通过以下命令进行安装:

pip install plotly

安装完成后,可以通过以下代码绘制一个简单的折线图:

import plotly.graph_objects as go

准备数据

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

创建图形

fig = go.Figure(data=go.Scatter(x=x, y=y))

添加标题和标签

fig.update_layout(title='Sample Plot', xaxis_title='X Axis', yaxis_title='Y Axis')

显示图形

fig.show()

2、图形类型

Plotly支持多种图形类型,以下是一些常用的图形类型:

  • 折线图:用于显示数据的趋势。
  • 散点图:用于显示两个变量之间的关系。
  • 柱状图:用于比较不同类别的数据。
  • 饼图:用于显示数据的比例。
  • 直方图:用于显示数据的分布。

下面是这些图形类型的示例代码:

import plotly.graph_objects as go

import plotly.express as px

折线图

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

fig = go.Figure(data=go.Scatter(x=x, y=y))

fig.update_layout(title='Line Plot')

fig.show()

散点图

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))

fig.update_layout(title='Scatter Plot')

fig.show()

柱状图

fig = go.Figure(data=go.Bar(x=['A', 'B', 'C', 'D'], y=[10, 20, 30, 40]))

fig.update_layout(title='Bar Chart')

fig.show()

饼图

fig = go.Figure(data=go.Pie(labels=['A', 'B', 'C', 'D'], values=[15, 30, 45, 10]))

fig.update_layout(title='Pie Chart')

fig.show()

直方图

fig = go.Figure(data=go.Histogram(x=[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]))

fig.update_layout(title='Histogram')

fig.show()

四、BOKEH

Bokeh是一个用于创建交互式可视化图表的库,特别适合处理大数据集。

1、安装与基本使用

首先,确保已安装Bokeh库。可以通过以下命令进行安装:

pip install bokeh

安装完成后,可以通过以下代码绘制一个简单的折线图:

from bokeh.plotting import figure, show

from bokeh.io import output_notebook

输出到笔记本

output_notebook()

准备数据

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

创建图形

p = figure(title="Sample Plot", x_axis_label='X Axis', y_axis_label='Y Axis')

p.line(x, y, legend_label="Line", line_width=2)

显示图形

show(p)

2、图形类型

Bokeh支持多种图形类型,以下是一些常用的图形类型:

  • 折线图:用于显示数据的趋势。
  • 散点图:用于显示两个变量之间的关系。
  • 柱状图:用于比较不同类别的数据。
  • 饼图:用于显示数据的比例。
  • 直方图:用于显示数据的分布。

下面是这些图形类型的示例代码:

from bokeh.plotting import figure, show

from bokeh.io import output_notebook

输出到笔记本

output_notebook()

折线图

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

p = figure(title="Line Plot", x_axis_label='X Axis', y_axis_label='Y Axis')

p.line(x, y, legend_label="Line", line_width=2)

show(p)

散点图

p = figure(title="Scatter Plot", x_axis_label='X Axis', y_axis_label='Y Axis')

p.scatter(x, y, legend_label="Scatter", size=10)

show(p)

柱状图

p = figure(title="Bar Chart", x_axis_label='Category', y_axis_label='Values', x_range=['A', 'B', 'C', 'D'])

p.vbar(x=['A', 'B', 'C', 'D'], top=[10, 20, 30, 40], width=0.5)

show(p)

饼图

from bokeh.io import output_file

from bokeh.plotting import figure, show

from math import pi

output_file("pie.html")

x = {

'A': 15,

'B': 30,

'C': 45,

'D': 10

}

data = pd.Series(x).reset_index(name='value').rename(columns={'index': 'category'})

data['angle'] = data['value']/data['value'].sum() * 2*pi

data['color'] = ['#f63366', '#33a6f6', '#f6d333', '#33f67b']

p = figure(plot_height=350, title="Pie Chart", toolbar_location=None, tools="hover", tooltips="@category: @value", x_range=(-0.5, 1.0))

p.wedge(x=0, y=1, radius=0.4,

start_angle=cumsum('angle', include_zero=True), end_angle=cumsum('angle'),

line_color="white", fill_color='color', legend_field='category', source=data)

p.axis.axis_label = None

p.axis.visible = False

p.grid.grid_line_color = None

show(p)

直方图

import numpy as np

data = np.random.randn(1000)

hist, edges = np.histogram(data, bins=50)

p = figure(title="Histogram", x_axis_label='Value', y_axis_label='Frequency')

p.quad(top=hist, bottom=0, left=edges[:-1], right=edges[1:], line_color="white")

show(p)

五、PANDAS内置绘图功能

Pandas是一个强大的数据分析库,内置了一些简单易用的绘图方法,适合快速的数据可视化。

1、安装与基本使用

首先,确保已安装Pandas库。可以通过以下命令进行安装:

pip install pandas

安装完成后,可以通过以下代码绘制一个简单的折线图:

import pandas as pd

创建数据

data = {'x': [1, 2, 3, 4, 5], 'y': [1, 4, 9, 16, 25]}

df = pd.DataFrame(data)

绘制折线图

df.plot(x='x', y='y', title='Sample Plot')

2、图形类型

Pandas支持多种图形类型,以下是一些常用的图形类型:

  • 折线图:用于显示数据的趋势。
  • 散点图:用于显示两个变量之间的关系。
  • 柱状图:用于比较不同类别的数据。
  • 直方图:用于显示数据的分布。

下面是这些图形类型的示例代码:

import pandas as pd

创建数据

data = {'x': [1, 2, 3, 4, 5], 'y': [1, 4, 9, 16, 25]}

df = pd.DataFrame(data)

折线图

df.plot(x='x', y='y', title='Line Plot')

散点图

df.plot.scatter(x='x', y='y', title='Scatter Plot')

柱状图

data = {'Category': ['A', 'B', 'C', 'D'], 'Values': [10, 20, 30, 40]}

df = pd.DataFrame(data)

df.plot.bar(x='Category', y='Values', title='Bar Chart')

直方图

data = {'Values': [1, 2, 2, 3, 3, 3, 4, 4, 4, 4]}

df = pd.DataFrame(data)

df.plot.hist(y='Values', bins=4, title='Histogram')

六、总结

通过以上介绍,Python提供了多种用于数据可视化的工具和库。Matplotlib适合各种基础绘图需求,具有强大的灵活性;Seaborn提供了更高级的接口和美观的默认样式,适合统计数据的可视化;PlotlyBokeh擅长创建交互式图表,尤其适合需要动态交互的场景;Pandas内置的绘图方法则适合快速简便的数据可视化需求。

在实际应用中,可以根据具体需求选择合适的库进行数据可视化,从而更好地理解和展示数据。通过不断实践和探索,相信你会越来越熟练地使用这些工具,创建出精美且具有洞察力的图表。

相关问答FAQs:

如何在Python中选择合适的图形库进行数据可视化?
在Python中,有多个强大的图形库可以用于数据可视化。其中,Matplotlib是最基础的库,适合创建简单的图表;Seaborn基于Matplotlib,提供更美观的统计图形;Plotly则适合交互式图形,适用于Web应用。选择哪种库取决于你的需求,比如图表的复杂程度、交互性以及美观度。

Python中如何读取和处理数据以便可视化?
在进行数据可视化之前,通常需要使用Pandas库读取和处理数据。Pandas支持多种数据格式,包括CSV、Excel和SQL数据库。通过DataFrame对象,你可以轻松地进行数据清洗、筛选和聚合等操作,从而为可视化做好准备。

如何提高Python图形的可读性和信息传达能力?
在创建图形时,确保图表的可读性是非常重要的。可以通过添加标题、轴标签和图例来提高图形的清晰度。同时,选择合适的颜色和图形样式也能帮助观众更好地理解数据。使用注释或标记高亮关键数据点,也能够更有效地传达信息。

相关文章