科研柱状图
时间: 2025-04-28 12:13:36 浏览: 18
### 创建科研柱状图
为了创建高质量的科研柱状图,可以利用 Python 的 `matplotlib` 库来实现。下面是一个具体的例子,展示如何绘制带有误差线的双轴柱状图,适用于对比不同数据集之间的关系。
#### 导入必要的库
首先导入所需的库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
#### 准备数据
准备要可视化的数据,这里以平均房价及其波动范围为例,并引入另一个变量——平均工资及其波动范围作为辅助说明[^3]。
```python
# 数据准备
prices = (12, 15, 11, 10, 8) # 平均房价
tolerance_p = (3, 4, 3, 2.5, 3.5) # 房价波动范围
wages = (6, 10, 7, 8, 6) # 平均工资
tolerance_w = (2, 5, 4, 4, 4) # 工资波动范围
ind = np.arange(len(prices)) # X 轴位置
width = 0.35 # 柱子宽度设置
```
#### 绘制图表
接下来构建图形对象并调整布局参数以便更好地呈现两个不同的度量单位(即价格和工资)。通过调用 `plt.subplots()` 方法获取到画布实例以及坐标系元组,这有助于更灵活地控制绘图细节[^1]。
```python
fig, ax1 = plt.subplots()
ax2 = ax1.twinx() # 实现共享X轴的同时拥有独立Y轴
rects1 = ax1.bar(ind - width/2, prices, width, label='Price', yerr=tolerance_p, color='SkyBlue')
rects2 = ax2.bar(ind + width/2, wages, width, label='Wage', yerr=tolerance_w, color='IndianRed')
ax1.set_xlabel('City Index') # 设置X轴标签
ax1.set_ylabel('Average Price ($)', color='b') # Y轴左侧标签颜色匹配对应系列的颜色
ax2.set_ylabel('Average Wage ($)', color='r') # 右侧同理
ax1.tick_params(axis='y', colors='blue') # 修改刻度标记样式使其与相应线条一致
ax2.tick_params(axis='y', colors='red')
```
#### 添加额外装饰
为了让图表更加美观易读,在最后一步加入一些修饰性的元素如标题、网格线等。
```python
plt.title('Comparison between Average Prices and Wages across Cities')
plt.xticks(ind, ('C1', 'C2', 'C3', 'C4', 'C5'))
plt.grid(True)
# 显示图例
lines_labels = [ax.get_legend_handles_labels() for ax in fig.axes]
handles, labels = [sum(lol, []) for lol in zip(*lines_labels)]
fig.legend(handles, labels, loc='upper right')
plt.show()
```
上述代码片段展示了如何使用 Matplotlib 来制作专业的科研级柱状图,其中包含了多个重要特性,比如多条形显示、错误棒表示不确定性区间、支持中文字符以及其他定制化选项[^2]。
阅读全文
相关推荐


















