Почему метки не отображаются на круговой диаграмме в приложении KivyMD?Python

Программы на Python
Anonymous
Почему метки не отображаются на круговой диаграмме в приложении KivyMD?

Сообщение Anonymous »

В настоящее время я разрабатываю приложение KivyMD, которое включает в себя круговую диаграмму с использованием Matplotlib.
Однако метки не отображаются на круговой диаграмме, как ожидалось.
Я использую функцию plt.pie() для создания круговой диаграммы, но метки для каждого сегмента не отображаются. Сегменты рисуются, но видимых меток или процентных значений нет.
Что может быть причиной того, что метки не отображаются на круговой диаграмме?

Присутствуют ли они какие-либо распространенные проблемы с рендерингом фигур Matplotlib в Kivy, о которых мне следует знать?
Будем очень признательны за любую помощь или рекомендации!
Файл Kivy:

Код: Выделить всё

MDFloatLayout:
id: main_layout
size: root.width,root.height

MDBoxLayout:
id: plot_container

orientation: "vertical"

size_hint: None,None

width: 600

height: 400

padding: "5dp"

pos_hint: {"center_x": 0.6, "center_y":0.5}

MDBoxLayout:
id: menu_bar

orientation: "vertical"

size_hint: None,None

width: 120

height: root.height

pos_hint:{"center_x":0.07}

padding:"5dp"

spacing: "5dp"

canvas:
Color:
rgba: 163/255,216/255,239/255,1

Rectangle:
size:self.size

pos:self.pos

canvas.after:
Color:
rgba: 1,1,1,1

Rectangle:
source: "img/monitoring-test.png"

size:60,60

pos:(25,root.height - 65)

Widget:
size_hint: None,None

width: 115

height: 60

canvas:
Color:
rgba: 58/255,101/255,153/255,0

Rectangle:
size:self.size

pos:self.pos

MDIconButton:
icon: "img/bar-chart.png"

text: "Text1"

pos_hint: {"center_x":0.5}

icon_size: "50sp"

on_release: app.create_bar_plot()

MDLabel:
text: "Text1"

font_size: "16"

font_type: "Arial"

halign: "center"

bold: True

color: 0,0,0,1

Widget:
size_hint: None,None

width: 115

height: 50

canvas:
Color:
rgba: 58/255,101/255,153/255,0.2

Rectangle:
size:self.size

pos:self.pos

MDIconButton:
icon: "img/pie-chart.png"

text: "Text1"

pos_hint: {"center_x":0.5}

icon_size: "50sp"

on_release: app.create_pie_plot()

MDLabel:
text: "Text1"

font_size: "16"

font_type: "Arial"

halign: "center"

bold: True

color: 0,0,0,1

Widget:
size_hint: None,None

width: 115

height: 50

canvas:
Color:
rgba: 58/255,101/255,153/255,0.2

Rectangle:
size:self.size

pos:self.pos

MDIconButton:
icon: "img/bar-chart.png"

text: "Text1"

pos_hint: {"center_x":0.5}

icon_size: "50sp"

MDLabel:
text: "Text1"

font_size: "16"

font_type: "Arial"

halign: "center"

bold: True

color: 0,0,0,1

Widget:
size_hint: None,None

width: 115

height: 50

canvas:
Color:
rgba:  58/255,101/255,153/255,0.2

Rectangle:
size:self.size

pos:self.pos
Файл Python:

Код: Выделить всё

from kivymd.app import MDApp

from kivy.lang.builder import Builder

from kivy.animation import Animation

from kivy.uix.label import Label

from matplotlib import pyplot as plt

from kivy_garden.matplotlib import FigureCanvasKivy

class Dashboard(MDApp):

def build(self):
self.theme_cls.theme_style = "Light"
self.root = Builder.load_file("PoliFyp.kv")
self.create_bar_plot()
return self.root

def create_bar_plot(self):

plt.clf()

plot_container = self.root.ids.plot_container

plot_container.clear_widgets()

plot_container.width = 600

plot_container.height = 400

x = [11, 22, 33, 44, 55, 66, 77, 88, 99, 100]

y = [12, 6, 9, 15, 23, 67, 11, 90, 34, 91]

plt.bar(x, y,8,color='orange')

plt.ylabel("Y axis")

plt.xlabel("X axis")

plot_container.add_widget(FigureCanvasKivy(plt.gcf()))

def create_pie_plot(self):
plt.clf()

plot_container = self.root.ids.plot_container

plot_container.width = 500

plot_container.height = 900

sizes = [12, 6, 9]

labels = ["APPLE","BANANA","DATES"]  # Example labels

plt.pie(sizes, labels=labels, autopct='%0.1f%%', startangle=140, textprops={'fontsize': 6})

plot_container.clear_widgets()

plot_container.add_widget(FigureCanvasKivy(plt.gcf()))

Dashboard().run()
  • Изменен размер и цвет шрифта в текстовых свойствах. Убедитесь, что размеры
    не слишком малы для отображения меток.
  • Проверено, что функция Clear_widgets() вызывается
    перед добавлением новой круговой диаграммы.
  • Проверил, что цвет фона
    графика не закрывает метки.
  • Сегменты круговой диаграммы
    отображаются правильно, но метки пропал


Подробнее здесь: https://stackoverflow.com/questions/790 ... pplication

Вернуться в «Python»