我已经在这里发布了相当数量的代码,它在这篇文章的底部。这段代码打开了一个tkinter图形用户界面,其中包含各种按钮和字段等。它还使用matplotlib在最底部显示一个图形。我知道这不是最好的图书馆使用,但我不知道其他人如何与tkinter工作。所以我最好暂时坚持使用matplotlib。
对于图表,我希望每个数据点都是从[x,y]坐标到[x,0]的垂直线。很明显的答案是使用条形图,条形图的宽度为1,我试过了,但是绘制速度比散点图慢得多。
我一直想弄清楚的是,是否可以使用这里使用的散点图方法,垂直线绘制为y=0。这可能吗?
或者我应该放弃使用matplotlib和pandas或PyQtGraph的尝试。如果是这样的话,有没有教程来说明这是如何做到的?我试过找一些,但没有运气。
任何帮助都将不胜感激。我正在使用python 3.3的pyzo包。
import numpy
from decimal import *
import tkinter as tk
import numpy as np
from tkinter import *
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
from tkinter import ttk
import tkinter.scrolledtext as tkst
import spectrum_plot_2 as specplot
import sequencer as seq
class Plot:
def __init__(self, master, data):
self.x = np.array(data.spectrum[0])
self.y = np.array(data.spectrum[1])
# Create a container
self.frame = tk.Frame(master)
self.fig = Figure()
self.ax = self.fig.add_subplot(111)
self.line = self.ax.plot(self.x, self.y, '|')
self.canvas = FigureCanvasTkAgg(self.fig,master=master)
# self.canvas.show()
self.canvas.get_tk_widget().pack(side='top', fill='both', expand=1)
self.frame.pack()
def update(self, data):
"""Updates the plot with new data"""
self.x = np.array(data.spectrum[0])
self.y = np.array(data.spectrum[1])
self.line[0].set_xdata(self