我知道如何在Matplotlib中显示刺。我知道如何在Tkinter中显示Matplotlib子图。但我想知道如何在Tkinter的这个子情节中放入刺。
以下是在Tkinter中显示子图的代码:
import matplotlib
matplotlib.use('TkAgg')
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import sys
if sys.version_info[0] < 3:
import Tkinter as Tk
else:
import tkinter as Tk
def destroy(e): sys.exit()
root = Tk.Tk()
root.wm_title("Embedding in TK")
f = Figure(figsize=(5,4), dpi=100)
a = f.add_subplot(111)
t = arange(0.0,3.0,0.01)
s = sin(2*pi*t)
a.plot(t,s)
a.set_title('Tk embedding')
a.set_xlabel('X axis label')
a.set_ylabel('Y label')
# a tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
#toolbar = NavigationToolbar2TkAgg( canvas, root )
#toolbar.update()
canvas._tkcanvas.pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
button = Tk.Button(master=root, text='Quit', command=sys.exit)
button.pack(side=Tk.BOTTOM)
Tk.mainloop()`
以下是在Matplotlib中显示spines的代码:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
image = np.random.uniform(size=(10, 10))
ax.imshow(image, cmap=plt.cm.gray, interpolation='nearest')
ax.set_title('dropped spines')
# Move left and bottom spines outward by 10 points
ax.spines['left'].set_position(('outward', 10))
ax.spines['bottom'].set_position(('outward', 10))
# Hide the right and top spines
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
# Only show ticks on the left and bottom spines
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
plt.show()
答案 0 :(得分:0)
如果您在第二个代码块中使用ax.set_title('...')
,则在第一个块中使用a.set_title('...')
。这相当于您可以在ax
上调用的方法,您也可以调用a
。
只需使用与第二个块中相同的代码,但将ax
替换为a
,它应该可以正常工作。
根据文档,ax
和a
不是完全相同的对象。 Figure.add_subplot()
返回Axes
个实例,pyplot.subplots()
返回Axis
个对象作为第二个输出参数。但是,因为
Axes包含大部分图形元素:Axis ...
您可以从两者中以相同的方式编辑刺。