结合 plt.plot(x,y) 与 plt.boxplot()

Posted

技术标签:

【中文标题】结合 plt.plot(x,y) 与 plt.boxplot()【英文标题】:Combining plt.plot(x,y) with plt.boxplot() 【发布时间】:2011-08-21 18:15:49 【问题描述】:

我正在尝试将普通的 matplotlib.pyplot plt.plot(x,y) 与变量 y 作为变量 x 的函数与箱线图相结合。但是,我只想要x 的某些(可变)位置上的箱线图,但这似乎在 matplotlib 中不起作用?

【问题讨论】:

【参考方案1】:

这对我有用:

    绘制箱线图 获取箱线图 x 轴刻度位置 使用箱线图 x 轴刻度位置作为折线图的 x 轴值
# Plot Box-plot
ax.boxplot(data, positions=x, notch=True)
# Get box-plot x-tick locations
locs=ax.get_xticks()

# Plot a line between the means of each dataset
# x-values = box-plot x-tick locations
# y-values = means
ax.plot(locs, y, 'b-')


【讨论】:

【参考方案2】:

你想要这样的东西吗? positions kwarg 到 boxplot 允许您将箱线图放置在任意位置。

import matplotlib.pyplot as plt
import numpy as np

# Generate some data...
data = np.random.random((100, 5))
y = data.mean(axis=0)
x = np.random.random(y.size) * 10
x -= x.min()
x.sort()

# Plot a line between the means of each dataset
plt.plot(x, y, 'b-')

# Save the default tick positions, so we can reset them...
locs, labels = plt.xticks() 

plt.boxplot(data, positions=x, notch=True)

# Reset the xtick locations.
plt.xticks(locs)
plt.show()

【讨论】:

是的,谢谢,这正是我想要的。我一直试图在箱线图中做类似 plt.plot([x,y]) 的事情,但失败了......似乎误解了 kwarg positions +1 用于展示如何保存 xtick 位置。使用轴时,命令为 locs = ax.get_xticks()ax.set_xticks(locs) 除了我上面的评论之外,实际上还需要添加ax.set_xticklabels(locs) 才能获得正确的标签。

以上是关于结合 plt.plot(x,y) 与 plt.boxplot()的主要内容,如果未能解决你的问题,请参考以下文章

matplotlib 使用

matplotlib画图

matplotlib笔记(plot)

plt.plot()函数解析(最清晰的解释)

python学习之 plt 基础学习 python学习画图 注意: x,y 是list 不是单个数字

实现一个最简单的plot函数调用: