ich habe einen code zusammengebastelt [ mehr war es wiklich noch nicht], der aber das tut, was er soll. Er zeichnet [Qt4] ein Diagramm, und stellt als rote Linie den Mittelwert und als Schatten die Standardabweichung dar.
Ich will jetzt einzelne Punkte durch anklicken entfernen - und das funktioniert auch. Das Dia wird neu gezeichnet und der engeklickte Punkt fehlt.Ich möchte aber auch den Mittelwert und die Standardabweichung neu zeichnen lassen oder wenigstens die aktaulisierten Werte neu ausgeben. Ich habe es pber suptitle und annotate probiert ging aber nicht.
Wer kann mir mit einem möglichst einfachen Trick helfen ?
Code: Alles auswählen
# -*- coding: utf-8 -*-
import numpy as np
from pylab import *
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
AMF=[1.1665984021636808, 1.1738562738644749, 1.1666294668813255, 1.1662366918581406, 1.1651908070446064, 1.165288542617118, 1, 1.1640923694666732, 1.1659259361461558, 1.1664426493447293, 1.1608471516431171, 1.1637575882952071, 1.1664486807403549, 1.1657513460484836, 1.1658653494065288, 1.1652294264546637, 1.1637708502945607, 1.1663345388929887, 1.1657111410830556, 1.1642051230567771, 1.1662390490217216, 1.1666013478957822, 1.1658008125454429, 1.1650347331268238, 1.16564198694793, 1.1665620856481373, 1.1668473788099185, 1.1660328625855854, 1.1610649651775911, 1.1653362700554857, 1.1660170412195148, 1.1655608245908795, 1.1649259712436562, 1.1661034078279107, 1.1658982696612021, 1.1668618585373423, 1.1656182159347515, 1.1656959650201444, 1.1640673861171582, 1.1654065220319783, 1.1655201699714539, 1.1665113912410165, 1.16688065699758, 1.1647657324873133, 1.163811045130742, 1.1676441163241795, 1.1656978580420219, 1.1667022499421618, 1.1664803629149312, 1.1658037516041027, 1.165858238694983, 1.1647174579138215, 1.1662780731556455, 1.1656446099435747, 1.1650883035942274, 1.1661165869890884, 1.1659206314727075, 1.166902696643094, 1.1661546880797653, 1.1657264121094733, 1.1665309336729404, 1.1665729226785844, 1.1666769521004274, 1.1651938795447918, 1.1661139521205739, 1.1666619176848347, 1.1663125101453284, 1.1659946022790781, 1.1663324505243711, 1.1655818113200376, 1.1651646087485761, 1.1654872265597902, 1.1609014588599234, 1.1591316818841253, 1.1655163728421705, 1.1651404585669745, 1.1655457123658701, 1.1667826227502649, 1.1661540212475174, 1.1662195488460425, 1.1655385288211242, 1.1662038529234007, 1.1667568210500039, 1.1657906229354078, 1.1656151542230893, 1.1652421787338023, 1.1659248063085517, 1.1657503510030958, 1.1685389065793308, 1.1649006003773144, 1.1661831935475673, 1.1661591347866815, 1.1661377577061192, 1.1671946977000474, 1.1652594895141053, 1.1667013759125955, 1.1649293250788733, 1.1660873956546494, 1.1651507558969887, 1.1637579713799198, 1.166063100797625, 1.1659128144934174, 1.1663577615075276, 1.1655750805894571, 1.1663409591232059, ]
ymin,ymax=min(AMF),max(AMF)
l=np.arange(len(AMF))
xmax=max(l)
ax.axis([0,xmax,ymin,ymax])
mu=mean(AMF)
sigma=std(AMF)
Test=ax.annotate("%s" %mu,xy=(10,-5), xycoords='axes points')
#fig.suptitle("MW = %.4f\nStd = %.4f" %(mu,sigma))
ax.axhline(mu,linewidth=1, color='r')
ax.axhspan(mu-sigma,mu+sigma,facecolor='0.5', alpha=0.5)
line, = ax.plot(AMF, 'o', picker=5)
a=""
def onpick(event):
thisline = event.artist
xdata = thisline.get_xdata()
ydata = thisline.get_ydata()
ind = event.ind
#print 'onpick points:', (xdata[ind],ydata[ind])
index=xdata[ind]
del AMF[index]
l=np.arange(len(AMF))
line.set_ydata(AMF)
line.set_xdata(l)
xmax,ymin,ymax=max(l),min(AMF)-0.01,max(AMF)+0.01
ax.axis([0,xmax,ymin,ymax])
mu=mean(AMF)
sigma=std(AMF)
Test.update("%s" %mu)
fig.suptitle("MW = %.4f\nStd = %.4f" %(mu,sigma))
ax.axhline(mu,linewidth=1, color='r')
ax.axhspan(mu-sigma,mu+sigma,facecolor='0.5', alpha=0.5)
plt.draw()
fig.canvas.mpl_connect('pick_event', onpick)
plt.show()