matplotlib同时绘制折线图和柱状图的代码
时间: 2024-10-24 18:05:12 浏览: 166
在Python的matplotlib库中,你可以通过在同一图表上添加`plt.plot()`函数创建折线图,使用`plt.bar()`函数创建柱状图来实现两者并存。下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
# 数据
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 6, 8, 10] # 折线图数据
y2 = [3, 6, 9, 12, 15] # 柱状图数据
# 创建新图形
fig, ax = plt.subplots()
# 绘制折线图
ax.plot(x, y1, label='Line Chart', marker='o') # 使用'o'表示圆点标记
# 绘制柱状图
ax.bar(x, y2, width=0.5, label='Bar Chart')
# 添加标题、轴标签和图例
ax.set_title('Line and Bar Plot')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.legend()
# 显示图形
plt.show()
```
在这个例子中,我们首先导入了`pyplot`模块并简称为`plt`。然后创建了一个新的图形,并分别给折线图和柱状图分配了各自的数据。最后设置了图表的标题、坐标轴标签以及图例,并显示了整个图表。
相关问题
用pandas同时绘制折线图和柱状图的代码
在Python的Pandas库中,可以结合Matplotlib库来创建同时包含折线图和柱状图的复合图表。下面是一个简单的例子,假设我们有一个DataFrame `df`,其中一列是时间序列数据,另一列是对应的数值:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 假设 df 是这样的 DataFrame
data = {
'time': ['2022-01', '2022-02', '2022-03', '2022-04', '2022-05'],
'line_data': [10, 20, 30, 40, 50],
'bar_data': [5, 15, 25, 35, 45]
}
df = pd.DataFrame(data)
# 创建折线图
plt.figure(figsize=(10,6))
plt.plot(df['time'], df['line_data'], label='Line Chart', marker='o')
# 创建柱状图
ax2 = plt.twinx() #在同一坐标系上添加第二个y轴
ax2.bar(df['time'], df['bar_data'], color='tab:red', alpha=0.7)
ax2.set_ylabel('Bar Chart') #给第二轴命名
# 添加标题和标签
plt.title('Line and Bar Chart')
plt.xlabel('Time')
plt.ylabel('Values')
plt.legend()
# 显示图形
plt.show()
```
在这个例子中,`plot()`函数用于绘制折线图,`twinx()`函数用于在同一坐标系上添加第二个y轴以绘制柱状图。每个部分都有自己的标签和颜色。
.Matplotlib 绘制图表← 绘制折线图 绘制柱状图← 绘制饼图< 绘制散点图e
### 使用 Matplotlib 绘制折线图、柱状图、饼图和散点图
#### 折线图
通过 `plt.plot()` 方法可以轻松创建折线图。以下是绘制折线图的示例代码:
```python
import matplotlib.pyplot as plt
# 准备数据
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 创建折线图
plt.plot(x, y, color='blue', linestyle='-', marker='o')
# 添加标题和标签
plt.title("折线图示例", fontsize=16)
plt.xlabel("X轴", fontsize=12)
plt.ylabel("Y轴", fontsize=12)
# 显示图形
plt.show()
```
此代码展示了如何使用颜色、线条样式以及标记来自定义折线图[^2]。
---
#### 柱状图
`plt.bar()` 或 `plt.barh()` 可用于绘制垂直或水平的柱状图。以下是一个简单的柱状图实现方法:
```python
import matplotlib.pyplot as plt
# 准备数据
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 2, 5]
# 创建柱状图
plt.bar(categories, values, color=['red', 'green', 'blue', 'orange'])
# 添加标题和标签
plt.title("柱状图示例", fontsize=16)
plt.xlabel("类别", fontsize=12)
plt.ylabel("数值", fontsize=12)
# 显示图形
plt.show()
```
这段代码演示了如何为不同的柱子分配特定的颜色,并设置了图表的标题和坐标轴名称[^1]。
---
#### 饼图
利用 `plt.pie()` 方法可生成饼图,适合用来表示比例关系的数据分布。下面是绘制饼图的一个例子:
```python
import matplotlib.pyplot as plt
# 准备数据
sizes = [25, 35, 20, 20]
labels = ['苹果', '香蕉', '橙子', '葡萄']
# 创建饼图
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, colors=['gold', 'yellowgreen', 'lightcoral', 'lightskyblue'])
# 设置圆形显示
plt.axis('equal')
# 添加标题
plt.title("水果占比饼图")
# 显示图形
plt.show()
```
这里配置了自动百分比标注 (`autopct`) 和起始角度 (`startangle`) 来增强视觉效果[^3]。
---
#### 散点图
借助 `plt.scatter()` 能够制作散点图,适用于表现两个变量之间的关系。如下所示的是一个基础版本的散点图构建方式:
```python
import matplotlib.pyplot as plt
import numpy as np
# 准备数据
np.random.seed(0)
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)
# 创建散点图
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis')
# 添加标题和标签
plt.title("散点图示例", fontsize=16)
plt.xlabel("X轴", fontsize=12)
plt.ylabel("Y轴", fontsize=12)
# 显示色彩映射条
plt.colorbar()
# 显示图形
plt.show()
```
该脚本还引入了透明度参数 (`alpha`) 和渐变色方案 (`cmap`) 提升美观程度[^4]。
---
阅读全文
相关推荐















