Python Matplotlib Kütüphanesi

Arkadaşlar matplotlib tkinter’in içindeyken nasıl renklendiriyoruz. Yani

    from matplotlib.figure import Figure
    from matplotlib.backends.backend_tkagg import (
        FigureCanvasTkAgg, NavigationToolbar2Tk)

şeklinde import ettikten sonra

    fig = Figure()
    fig.add_subplot(111).plot(tur)
    canvas = FigureCanvasTkAgg(figure=fig, master=frame)
    canvas.get_tk_widget().pack(anchor="e", fill="both", expand=True)
    navbar = NavigationToolbar2Tk(canvas=canvas, window=frame)

şeklinde tanımladık. Grafiğin arkaplan rengini, çizgi rengini vs. nasıl biçimlendirebilirim ?

Aşağıdaki örneği inceleyin:

import tkinter as tk

from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import (
    FigureCanvasTkAgg, NavigationToolbar2Tk
)

root = tk.Tk()

fig = Figure()
fig.add_subplot(111).plot(range(10), [i ** 2 for i in range(10)], color="yellow")
fig.set_facecolor("red")
fig.gca().set_facecolor('green')

canvas = FigureCanvasTkAgg(figure=fig, master=root)
canvas.get_tk_widget().pack(side="top", fill="both", expand=True)

navbar = NavigationToolbar2Tk(canvas=canvas, window=root)

root.mainloop()

Peki grafiğin biçimini nasıl değiştirebilirim. Normal matplotlib.pylot’da ki şekilde kodları uygulayınca çalışmıyor.

Grafiğin biçimi derken neyi kastediyorsunuz? Oluşan şekli mi, şeklin çizgi şeklinde gösterilmesini mi, yoksa başka bir şeyi mi?

pyplot kullanacaksanız, o zaman figürü pyplot.Figure() şeklinde tanımlarsınız.

import tkinter as tk

import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import (
    FigureCanvasTkAgg, NavigationToolbar2Tk
)

root = tk.Tk()

fig = plt.Figure()
fig.add_subplot(111).plot(range(10), [i ** 2 for i in range(10)], color="yellow")
fig.set_facecolor("red")
fig.gca().set_facecolor('green')

canvas = FigureCanvasTkAgg(figure=fig, master=root)
canvas.get_tk_widget().pack(side="top", fill="both", expand=True)

navbar = NavigationToolbar2Tk(canvas=canvas, window=root)

root.mainloop()

Şöyle mesela

Aşağıdaki kodlar aslında ekranın neredeyse tamamının renklerini değiştirmenizi sağlıyor. Renkleri istediğiniz gibi ayarlayarak paylaştığınız resimdeki gibi bir görüntü elde edebilirsiniz.

import tkinter as tk

import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import (
    FigureCanvasTkAgg, NavigationToolbar2Tk
)

root = tk.Tk()

fig = plt.Figure()
fig.add_subplot(111).plot(range(10), [i ** 2 for i in range(10)], color="gray")
fig.set_facecolor("#342d2d")
fig.gca().set_facecolor("black")
fig.gca().spines["left"].set_color("green")
fig.gca().spines["right"].set_color("green")
fig.gca().spines["bottom"].set_color("red")
fig.gca().spines["top"].set_color("red")
fig.gca().xaxis.label.set_color("purple")
fig.gca().yaxis.label.set_color("orange")
fig.gca().tick_params(axis="x", colors="red")
fig.gca().tick_params(axis="y", colors="green")
fig.gca().grid(color="#3b464a")
fig.gca().set_xlabel("X ekseni")
fig.gca().set_ylabel("Y ekseni")

canvas = FigureCanvasTkAgg(figure=fig, master=root)
canvas.get_tk_widget().pack(side="top", fill="both", expand=True)

navbar = NavigationToolbar2Tk(canvas=canvas, window=root)

root.mainloop()
2 Beğeni

Başlık Matplotlib Tkinter'ın İçinde Nasıl Renklendirilir? olursa daha doğru olur diye düşünüyorum.

Kısmen de olsa doğru söylüyorsunuz. Matplotlib'i tkinter ile birlikte kullansak da kullanmasak da, grafikteki kısımları renklendirmek için aynı kodları yazmak gerekiyor. Bu yüzden başlık “Bir grafiğin kısımlarını nasıl renklendirebilirim?” olsa daha doğru olur gibi geliyor bana. Çünkü renklendirdiğimiz şey matplotlib değil. Bu arada matplotlib, opsiyonel etiketler kısmına yazılabilir.

1 Beğeni