小编nar*_*ndu的帖子

如何在matplotlib中获取条形图/堆积条形图上的标签?

我在 PyQt Canvas 中嵌入了一个非常简单的堆叠 matplotlib 条形图。我试图根据点击获取条形区域(矩形)的相应标签。但是当我尝试从事件中打印信息时,我总是会得到_nolegend_。理想情况下,我希望在代码中附加的栏上看到相应的标签。

例如,当您单击灰色条时,它应该打印a2

import sys
import matplotlib.pyplot as plt

from PyQt4 import QtGui
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas


def on_pick(event):
    print event.artist.get_label()

def main():

    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    w.resize(640, 480)
    w.setWindowTitle('Pick Test')

    fig = Figure((10.0, 5.0), dpi=100)
    canvas = FigureCanvas(fig)
    canvas.setParent(w)

    axes = fig.add_subplot(111)

    # bind the pick event for canvas
    fig.canvas.mpl_connect('pick_event', on_pick)

    p1 = axes.bar(1,6,picker=2,label='a1')
    p2 = axes.bar(1,2, bottom=6,color='gray',picker=1,label='a2')

    axes.set_ylim(0,10)
    axes.set_xlim(0,5)

    w.show()

    sys.exit(app.exec_()) …
Run Code Online (Sandbox Code Playgroud)

python plot pyqt matplotlib bar-chart

5
推荐指数
1
解决办法
1787
查看次数

标签 统计

bar-chart ×1

matplotlib ×1

plot ×1

pyqt ×1

python ×1