python如何给大小差异很大的数据绘制Y轴和柱形断裂的柱形图
时间: 2023-05-11 16:04:18 浏览: 179
可以使用两个不同的Y轴,一个用于大数据,一个用于小数据,然后使用断裂的柱形图来表示数据的差异。具体实现可以使用matplotlib库中的twinx()函数来创建第二个Y轴,然后使用bar()函数来绘制柱形图。以下是一个简单的示例代码:
import matplotlib.pyplot as plt
# 生成数据
x = [1, 2, 3, 4, 5]
y1 = [100, 200, 300, 400, 500]
y2 = [0.1, 0.2, 0.3, 0.4, 0.5]
# 创建图形对象和第一个Y轴
fig, ax1 = plt.subplots()
# 绘制第一个Y轴的柱形图
ax1.bar(x, y1, color='blue')
# 创建第二个Y轴
ax2 = ax1.twinx()
# 绘制第二个Y轴的柱形图
ax2.bar(x, y2, color='red')
# 设置第一个Y轴的标签和颜色
ax1.set_ylabel('y1', color='blue')
ax1.tick_params(axis='y', labelcolor='blue')
# 设置第二个Y轴的标签和颜色
ax2.set_ylabel('y2', color='red')
ax2.tick_params(axis='y', labelcolor='red')
# 显示图形
plt.show()
相关问题
Python如何给大小差异很大的数据绘制Y轴和柱形断裂的柱形图
可以使用两个Y轴来绘制大小差异很大的数据,其中一个Y轴用来绘制较小的数据,另一个Y轴用来绘制较大的数据。柱形图可以使用Matplotlib库中的bar函数来绘制,断裂的柱形可以使用axvline函数来实现。以下是示例代码:
```python
import matplotlib.pyplot as plt
# 生成示例数据
x = ['A', 'B', 'C', 'D', 'E']
y1 = [10, 20, 30, 40, 50]
y2 = [1000, 2000, 3000, 4000, 5000]
# 创建画布和子图
fig, ax1 = plt.subplots()
# 绘制第一个Y轴和柱形图
ax1.bar(x, y1, color='blue')
ax1.set_ylabel('Y1', color='blue')
ax1.tick_params(axis='y', labelcolor='blue')
# 创建第二个Y轴
ax2 = ax1.twinx()
# 绘制第二个Y轴和柱形图
ax2.bar(x, y2, color='red')
ax2.set_ylabel('Y2', color='red')
ax2.tick_params(axis='y', labelcolor='red')
# 绘制柱形断裂
ax1.axvline(2.5, color='black', linestyle='--')
# 显示图形
plt.show()
```
这段代码可以生成一个大小差异很大的数据的柱形图,其中Y轴和柱形之间有断裂。
Python如何绘制Y轴和柱形断裂的柱形图
可以使用Matplotlib库中的broken_barh函数来绘制Y轴和柱形断裂的柱形图。具体实现代码如下:
import matplotlib.pyplot as plt
# 定义数据
data = {'A': [(1, 2), (4, 1), (7, 2)],
'B': [(2, 1), (5, 2), (8, 1)],
'C': [(3, 2), (6, 1), (9, 2)]}
# 绘制图形
fig, ax = plt.subplots()
for i, (key, values) in enumerate(data.items()):
for value in values:
ax.broken_barh([(value[0], value[1])], (i-0.4, 0.8), facecolors='blue')
# 设置图形属性
ax.set_ylim(-0.5, len(data)-0.5)
ax.set_xlim(0, 10)
ax.set_yticks(range(len(data)))
ax.set_yticklabels(data.keys())
# 显示图形
plt.show()
这段代码可以绘制出如下的Y轴和柱形断裂的柱形图:
阅读全文