python - Python并排matplotlib箱线图与颜色
问题描述
我按照此链接上的示例了解如何创建带颜色的箱线图。我一直在尝试不同的方法将这些箱线图分隔在两个不同的位置,而不是它们都重叠但无济于事。如果我为它们指定不同的位置,它们将保持在 bp2 位置。如何将这两个箱线图并排放置?
import matplotlib.pyplot as plt
def color_boxplot(data, color):
bp = boxplot(data, patch_artist=True, showmeans=True)
for item in ['boxes', 'whiskers', 'fliers', 'medians', 'caps']:
plt.setp(bp[item], color=color)
data1 = [1, 2, 3, 4, 5]
data2 = [4, 5, 6, 7, 8]
fig, ax = plt.subplots()
bp1 = color_boxplot(data1, 'green')
bp2 = color_boxplot(data2, 'red')
plt.show()
编辑:添加了示例数据。
解决方案
为了使您的代码基本保持原样,您只需为函数的位置添加另一个参数。
import matplotlib.pyplot as plt
def color_boxplot(data, color, pos=[0], ax=None):
ax = ax or plt.gca()
bp = ax.boxplot(data, patch_artist=True, showmeans=True, positions=pos)
for item in ['boxes', 'whiskers', 'fliers', 'medians', 'caps']:
plt.setp(bp[item], color=color)
data1 = [1, 2, 3, 4, 5]
data2 = [4, 5, 6, 7, 8]
fig, ax = plt.subplots()
bp1 = color_boxplot(data1, 'green', [1])
bp2 = color_boxplot(data2, 'red', [2])
ax.autoscale()
ax.set(xticks=[1,2], xticklabels=[1,2])
plt.show()
推荐阅读
- node.js - Node JS Promise 拒绝异常
- javascript - 将 React 组件的 HTML 发送到服务器
- windows - 允许使用 TouchInjection windows 8+ api 进行屏幕外触摸?
- python - 如何在pymogo中访问一个属性的值
- kubernetes - 使用 curl 检索自定义“custom.metrics.k8s.io”值
- python - Python石榴包UnboundLocalError:分配前引用的局部变量'distributions'
- ajax - 防止 Ajax 保存数据两次
- perl - Perl grep 数组索引
- firebird - 在 FirebirdSQL 上搜索锁定的记录或表
- netsuite - 如何在netsuite中获取没有recordType的Id记录?