I implemented a chart in a canvas.
I found examples of chart with two Y axes, but with plt.show() method .
being a novice, how can I integrate a second Y axis into the canvas?
Thanks for your help
# coding:utf-8
#version 3.x python
from tkinter import *
import tkinter as tk
from tkinter import ttk
print("TkVersion", TkVersion)
print("TclVersion", TclVersion)
print("Python version", sys.version_info)
import sys; print('Python %s on %s' % (sys.version, sys.platform))
from pylab import *
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from mpl_toolkits.axes_grid1.anchord_artists import AnchoredAuxTransformBox
print("MatPlotLib version : ", matplotlib.__version__)
print('MatPlotLib version : {}'.format(matplotlib.__version__))
def _on_tab_changed(event):
print("\n")
nb = event.widget
nb.update_idletasks()
tab = nb.nametowidget(nb.select())
nb.configure(height=tab.winfo_reqheight())
nb.configure(width=tab.winfo_reqwidth())
def Create_notebook(master=None, **kw):
nb = ttk.Notebook(master, **kw)
nb.bind("<<NotebookTabChanged>>", _on_tab_changed)
return nb
root = tk.Tk()
root.title("Titre")
root.resizable(False, False)
window_height = 800
window_width = 900
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x_cordinate = int((screen_width/2) - (window_width/2))
y_cordinate = int((screen_height/2) - (window_height/2))
root.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate))
RightFrame = tk.LabelFrame(root, text="[Label]", font=('verdana', 8, ''), foreground="blue", > relief=SOLID, borderwidth=0)
RightFrame.place(x=130, y=5, width=900, height=900)
RightFrame.anchor(anchor="center")
notebook = Create_notebook(RightFrame)
notebook.add(tk.Frame(notebook, bg="white", width=709, height=725, name="1"), text="GRAPH")
notebook.place(x=5, y=5)
Liste_TEST = [11.81, 4.91, 4.62, 4.19, 4.35, 4.22, 4.03, 4.31, 4.06, 4.23, 4.01, 4.28, 4.06, > 3.81, 4.05, 4.04, 4.13, 4.08, 3.99, 4.05, 4.15, 4.26, 4.3, 4.35, 4.77, 4.65, 4.77, 4.52, 4.6]
chiffre_inf = IntVar()
chiffre_inf.set(floor(min(Liste_TEST)))
chiffre_sup = IntVar()
chiffre_sup.set(ceil(max(Liste_TEST)))
fig = plt.Figure(figsize=(1, 1), dpi=96)
ax = fig.add_subplot(1, 1, 1, frameon=True)
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['bottom'].set_color('#000000')
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))
ax.spines['left'].set_color('#000000')
ax.tick_params(labelcolor='#000000', top=False, bottom=True, left=True, right=False)
plt.xlim(1, len(Liste_TEST))
plt.ylim(chiffre_inf.get(), chiffre_sup.get())
major_ticks = np.arange(chiffre_inf.get(), chiffre_sup.get(), 1)
minor_ticks = np.arange(chiffre_inf.get(), chiffre_sup.get(), 0.5)
ax.set_yticks(major_ticks * 1)
ax.set_yticks(minor_ticks * 1, minor=True)
ax.grid(which='minor', alpha=0.2)
ax.grid(which='major', alpha=0.5)
ax.grid(True)
ax.set_xlabel("Nombre de plein(s)", fontsize=6)
ax.set_ylabel("Litre(s)", fontsize=6)
ax.set_title("<" + "Titre tableau" + ">", fontsize=8, color='dimgrey')
print("Liste_TEST >", Liste_TEST)
ax.plot(range(len(Liste_TEST)), Liste_TEST, color="red", linewidth=.85, linestyle="dotted", > label='Effective')
graph = FigureCanvasTkAgg(fig, master=notebook.winfo_children()[0])
canvas = graph.get_tk_widget()
canvas.config(width=700, height=370, relief=RIDGE, borderwidth=2)
canvas.place(x=2, y=50)
root.mainloop()