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

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

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

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

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

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

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

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

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

25人以下免费

目录

python如何做数据统计图

python如何做数据统计图

在Python中,使用数据可视化库来绘制数据统计图是非常常见的。Matplotlib、Seaborn、Plotly是一些流行的库,用于创建各种类型的统计图。下面将详细介绍如何使用这些库来绘制数据统计图,并提供示例代码。

一、MATPLOTLIB

Matplotlib是一个广泛使用的2D绘图库,适用于创建静态、动画和交互式可视化图表。

1. 安装Matplotlib

首先,确保你已经安装了Matplotlib库。如果没有安装,可以使用以下命令进行安装:

pip install matplotlib

2. 绘制折线图

折线图用于显示数据的趋势,特别是随时间变化的数据。

import matplotlib.pyplot as plt

数据

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

y = [2, 3, 5, 7, 11]

plt.plot(x, y)

plt.title('折线图示例')

plt.xlabel('X轴')

plt.ylabel('Y轴')

plt.show()

3. 绘制柱状图

柱状图用于比较不同类别的数据。

import matplotlib.pyplot as plt

数据

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

values = [4, 7, 1, 8]

plt.bar(categories, values)

plt.title('柱状图示例')

plt.xlabel('类别')

plt.ylabel('值')

plt.show()

4. 绘制饼图

饼图用于显示各部分在整体中的比例。

import matplotlib.pyplot as plt

数据

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

sizes = [15, 30, 45, 10]

plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)

plt.title('饼图示例')

plt.show()

二、SEABORN

Seaborn是一个基于Matplotlib的统计数据可视化库,提供了更高级的接口和更美观的默认样式。

1. 安装Seaborn

首先,确保你已经安装了Seaborn库。如果没有安装,可以使用以下命令进行安装:

pip install seaborn

2. 绘制散点图

散点图用于显示两个变量之间的关系。

import seaborn as sns

import matplotlib.pyplot as plt

数据

tips = sns.load_dataset('tips')

sns.scatterplot(x='total_bill', y='tip', data=tips)

plt.title('散点图示例')

plt.xlabel('总账单')

plt.ylabel('小费')

plt.show()

3. 绘制箱线图

箱线图用于显示数据的分布情况和异常值。

import seaborn as sns

import matplotlib.pyplot as plt

数据

tips = sns.load_dataset('tips')

sns.boxplot(x='day', y='total_bill', data=tips)

plt.title('箱线图示例')

plt.xlabel('星期几')

plt.ylabel('总账单')

plt.show()

4. 绘制热图

热图用于显示矩阵数据的热度。

import seaborn as sns

import matplotlib.pyplot as plt

数据

flights = sns.load_dataset('flights')

flights_pivot = flights.pivot('month', 'year', 'passengers')

sns.heatmap(flights_pivot, annot=True, fmt='d', cmap='YlGnBu')

plt.title('热图示例')

plt.show()

三、PLOTLY

Plotly是一个用于创建交互式图表的库,支持多种图表类型,并且可以轻松地嵌入到网页中。

1. 安装Plotly

首先,确保你已经安装了Plotly库。如果没有安装,可以使用以下命令进行安装:

pip install plotly

2. 绘制折线图

import plotly.graph_objects as go

数据

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

y = [2, 3, 5, 7, 11]

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

fig.update_layout(title='折线图示例', xaxis_title='X轴', yaxis_title='Y轴')

fig.show()

3. 绘制柱状图

import plotly.graph_objects as go

数据

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

values = [4, 7, 1, 8]

fig = go.Figure(data=go.Bar(x=categories, y=values))

fig.update_layout(title='柱状图示例', xaxis_title='类别', yaxis_title='值')

fig.show()

4. 绘制饼图

import plotly.graph_objects as go

数据

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

sizes = [15, 30, 45, 10]

fig = go.Figure(data=go.Pie(labels=labels, values=sizes))

fig.update_layout(title='饼图示例')

fig.show()

四、其他高级图表类型

除了上述基本图表类型,Python还支持很多其他高级图表类型,如雷达图、瀑布图、树状图等。以下是一些高级图表的示例。

1. 雷达图

雷达图用于显示多变量数据。

import numpy as np

import matplotlib.pyplot as plt

数据

labels = np.array(['A', 'B', 'C', 'D', 'E'])

stats = [20, 34, 30, 35, 27]

angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False).tolist()

stats=np.concatenate((stats,[stats[0]]))

angles=np.concatenate((angles,[angles[0]]))

fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))

ax.fill(angles, stats, color='red', alpha=0.25)

ax.plot(angles, stats, color='red', linewidth=2)

ax.set_yticklabels([])

ax.set_xticks(angles[:-1])

ax.set_xticklabels(labels)

plt.title('雷达图示例')

plt.show()

2. 瀑布图

瀑布图用于显示数据的增减变化。

import matplotlib.pyplot as plt

import matplotlib.ticker as ticker

数据

categories = ['Start', 'A', 'B', 'C', 'D', 'End']

values = [1000, 300, -200, 100, -50, 0]

for i in range(1, len(values)):

values[i] += values[i-1]

fig, ax = plt.subplots()

ax.bar(categories, values, color=['blue' if v >= 0 else 'red' for v in values])

ax.yaxis.set_major_formatter(ticker.FuncFormatter(lambda x, _: '{:,.0f}'.format(x)))

plt.title('瀑布图示例')

plt.show()

3. 树状图

树状图用于显示数据的层次结构。

import plotly.express as px

数据

data = dict(

character=["root", "child1", "child2", "child1.1", "child1.2", "child2.1", "child2.2"],

parent=["", "root", "root", "child1", "child1", "child2", "child2"],

value=[10, 20, 30, 5, 15, 10, 20]

)

fig = px.treemap(data, names='character', parents='parent', values='value')

fig.update_layout(title='树状图示例')

fig.show()

五、总结

通过以上内容,你应该已经了解了如何在Python中使用Matplotlib、Seaborn和Plotly库来绘制各种数据统计图。选择合适的库和图表类型,可以帮助你更好地理解数据和传达信息。无论是基本的折线图、柱状图、饼图,还是高级的雷达图、瀑布图、树状图,Python都能提供强大的支持。通过不断实践和学习,你将能够创建出专业且美观的数据可视化图表。

相关问答FAQs:

如何选择合适的库来绘制数据统计图?
在Python中,有多个库可以用于绘制数据统计图,例如Matplotlib、Seaborn和Plotly等。Matplotlib是一个基础且强大的绘图库,适合创建各种类型的静态图形;Seaborn在Matplotlib的基础上进行了美化,特别适合绘制复杂的统计图;而Plotly则可以生成交互式图表,适合需要动态展示数据的场合。选择合适的库通常取决于你的需求和图表的复杂性。

在Python中如何准备数据以便绘制统计图?
准备数据是绘制统计图的重要一步。通常需要使用Pandas库来处理数据,首先将数据导入为DataFrame格式。接下来,可以通过数据清洗(如填补缺失值、去除异常值等)和数据转换(如分组、汇总等)来整理数据,确保数据的结构适合统计分析。处理后的数据可以直接用于绘图,确保生成的统计图准确反映所需的信息。

在绘制统计图时,如何调整图表的样式和颜色?
在Python中,可以通过多个参数来调整图表的样式和颜色。例如,在Matplotlib中,可以使用plt.style.use()选择不同的样式,使用color参数来改变图形的颜色。Seaborn则提供了调色板功能,可以使用palette参数来设置颜色主题。此外,可以通过设置图例、标题、标签等来增强图表的可读性和美观度,使得统计图不仅信息丰富,而且视觉效果更佳。

相关文章