matplotlib条形折线统计图
时间: 2024-06-19 14:01:47 浏览: 211
Matplotlib是一个广泛使用的Python数据可视化库,它提供了创建各种图表的能力,包括条形图和折线图。条形图通常用于比较类别之间的数值差异,而折线图则常用来展示数据随时间或其他连续变量的变化趋势。
在Matplotlib中,你可以使用`pyplot`模块中的函数轻松创建这些图形。以下是创建条形图和折线图的基本步骤:
**条形图(Bar Chart)**:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 30]
# 创建图形
plt.bar(categories, values)
# 添加标题和标签
plt.title('Category Values')
plt.xlabel('Categories')
plt.ylabel('Values')
# 显示图形
plt.show()
```
**折线图(Line Plot)**:
```python
# 数据
x = np.arange(0, 10, 0.1)
y = np.sin(x)
# 创建图形
plt.plot(x, y)
# 设置标题和轴标签
plt.title('Sine Function')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图形
plt.show()
```
相关问题
matplotlib 折线,饼状,柱状
### 使用 Matplotlib 绘制不同类型的图表
#### 折线图绘制方法
为了展示数据的趋势变化,可以采用 `matplotlib` 的 `plot()` 函数来实现折线图的绘制。通过传递两个列表参数给该函数分别代表横坐标和纵坐标的数值序列即可完成一条简单的折线描绘工作。
```python
import matplotlib.pyplot as plt
# 数据准备
x_values = [0, 1, 2, 3, 4]
y_values = [0, 2, 1, 3, 4]
plt.figure(figsize=(8, 6))
plt.plot(x_values, y_values, marker='o') # 添加标记点以便更清晰地看到各点位置
plt.title('Line Chart Example')
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.show()
```
#### 柱状图绘制方式
对于比较分类间的数据差异来说,柱状图是非常直观的选择之一。利用 `bar()` 或者 `barh()` 方法能够轻松构建垂直或水平方向上的条形统计图形。
```python
categories = ['A', 'B', 'C']
values = [5, 7, 3]
plt.figure(figsize=(8, 6))
plt.bar(categories, values)
for i in range(len(values)):
plt.text(i, values[i], str(values[i]), ha='center', va='bottom')
plt.title('Bar Chart Example')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()
```
#### 饼状图制作技巧
当需要表示部分占整体的比例关系时,可以选择饼状图作为表达形式。借助于 `pie()` 函数并传入相应比例数组及相关配置选项就可以得到一张美观大方的扇区分布图。
```python
sizes = [15, 30, 45, 10]
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
plt.figure(figsize=(8, 6))
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
plt.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.title('Pie Chart Example')
plt.show()
```
origin条形图折线
### 如何在同一图表中绘制条形图和折线图
为了实现同一图表中的条形图和折线图组合展示,可以通过 `matplotlib` 库来完成这一目标。具体来说,在同一个画布上先调用一次用于生成条形图的方法,再调用一次用于生成折线图的方法即可。
对于条形图部分,可以利用 `plt.bar()` 函数指定横纵坐标的值以及其它样式选项;而对于折线图,则继续沿用 `plt.plot()` 方法并配置相应的参数以定义线条属性[^1]。
下面是一个综合运用这两种图形的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 示例数据准备
months = ['Jan', 'Feb', 'Mar', 'Apr']
bar_data = [20, 35, 30, 35]
line_data = [25, 32, 34, 20]
index = np.arange(len(months))
fig, ax1 = plt.subplots()
# 绘制条形图
ax1.bar(index, bar_data, width=0.4, label='Bar Chart Data', color='b')
# 同一图表内添加第二个Y轴供折线图使用
ax2 = ax1.twinx()
# 绘制折线图
ax2.plot(index + 0.2, line_data, '-r*', markersize=8, linewidth=2, label='Line Chart Data')
# 设置X轴标签
plt.xticks(index + 0.2 / 2, months)
# 添加标题与坐标轴名称
plt.title('Combination of Bar and Line Charts')
ax1.set_xlabel('Months')
ax1.set_ylabel('Values for Bars (left)')
ax2.set_ylabel('Values for Lines (right)')
# 展示图例
lines_labels = [ax.get_legend_handles_labels() for ax in fig.axes[:]]
lines, labels = [sum(lol, []) for lol in zip(*lines_labels)]
fig.legend(lines, labels, loc='upper center')
# 显示图像
plt.tight_layout()
plt.show()
```
此代码片段展示了如何在一个图表里同时呈现两种不同类型的统计信息——通过左侧的蓝色竖直条表示一组数据量级,并且右侧红色星号连接而成的趋势曲线代表另一组连续变化的数据序列。这种混合方式有助于更直观地对比分析两套相关联但性质有所区别的统计数据集[^4]。
阅读全文
相关推荐















