Python 2.7 使用单选按钮根据字典中的项目更改图形的打印

Python 2.7 使用单选按钮根据字典中的项目更改图形的打印,python-2.7,matplotlib,radio-button,nsdictionary,Python 2.7,Matplotlib,Radio Button,Nsdictionary,我有一本字典,里面有很多东西。我想创建单选按钮数等于字典中项目数的单个图形。单选按钮选项将是字典的键,每次选择不同的单选按钮时,关联的值将相应地打印出来。例如: from matplotlib.widgets import Slider, Button, RadioButtons data = {'A' : [1,2,4,6,7,8,10],'B' : [1,2,4,6,4,3,7], 'C' : [3,2,1,6,2,3,4]} axcolor = 'lightgoldenrodyello

我有一本字典,里面有很多东西。我想创建单选按钮数等于字典中项目数的单个图形。单选按钮选项将是字典的键,每次选择不同的单选按钮时,关联的值将相应地打印出来。例如:

from matplotlib.widgets import Slider, Button, RadioButtons

data = {'A' : [1,2,4,6,7,8,10],'B' : [1,2,4,6,4,3,7], 'C' : [3,2,1,6,2,3,4]}

axcolor = 'lightgoldenrodyellow'
rax = plt.axes([0.025, 0.5, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, data.keys(), active=0)

def chooseGraph(graph):
    [plt.plot(data[names]) for names in data.keys()]
radio.on_clicked(chooseGraph)

plt.show()
当我执行这段代码时,我得到了单选按钮,但没有图形。当我选择一个按钮时,所有3个数据集都绘制在单选按钮的顶部,更改按钮只会更改颜色


提前谢谢你的帮助

您需要创建一个轴来绘制数据,否则它将选择当前活动的轴,即带有单选按钮的轴

import matplotlib.pyplot as plt
from matplotlib.widgets import RadioButtons

data = {'A' : [1,2,4,6,7,8,10],'B' : [1,2,4,6,4,3,7], 'C' : [3,2,1,6,2,3,4]}

fig, ax = plt.subplots()
ax.plot(data["A"])

rax = fig.add_axes([0.025, 0.5, 0.15, 0.15])
radio = RadioButtons(rax, sorted(data.keys()), active=0)

def chooseGraph(graph):
    ax.clear()
    ax.plot(data[graph])
    fig.canvas.draw_idle()

radio.on_clicked(chooseGraph)

plt.show()

您需要创建一个轴来打印数据,否则它将选择当前活动的轴,即带有单选按钮的轴

import matplotlib.pyplot as plt
from matplotlib.widgets import RadioButtons

data = {'A' : [1,2,4,6,7,8,10],'B' : [1,2,4,6,4,3,7], 'C' : [3,2,1,6,2,3,4]}

fig, ax = plt.subplots()
ax.plot(data["A"])

rax = fig.add_axes([0.025, 0.5, 0.15, 0.15])
radio = RadioButtons(rax, sorted(data.keys()), active=0)

def chooseGraph(graph):
    ax.clear()
    ax.plot(data[graph])
    fig.canvas.draw_idle()

radio.on_clicked(chooseGraph)

plt.show()

如果我将
ax.plot(数据[“A”])
更改为
ax.plot(数据[“B”])
ax.plot(数据[“C”])
,曲线将更改,但高亮显示的按钮始终为
A
。或者我不知道单选按钮是怎么工作的,为什么你会认为不是这样呢?我只是想知道B和C按钮是用来做什么的。我认为它们对应于B和C数据集,所以我们的想法是点击按钮可以看到与初始曲线(“a”)不同的曲线。如果将初始曲线更改为例如
ax.plot(data[“B”])
则需要将
活动
更改为
1
。如果将
ax.plot(data[“A”])
更改为
ax.plot(data[“B”])
ax plot(data[“C”])
,则曲线会更改,但高亮显示的按钮始终为
A
。或者我不知道单选按钮是怎么工作的,为什么你会认为不是这样呢?我只是想知道B和C按钮是用来做什么的。我认为它们对应于B和C数据集,所以我们的想法是点击按钮可以看到与初始曲线(“a”)不同的曲线。如果将初始曲线更改为例如
ax.plot(数据[“B”)
则需要将
active
更改为
1