Проблема приложения PyQt с гистограммой matplotlib x ticks - PullRequest
0 голосов
/ 12 марта 2020

enter image description here

enter image description here

Я делаю приложение для отображения графика, используя python pyqt5 и matplotlib. вот проблема с графиком, я не знаю, почему это происходит.

Вы можете увидеть 2-графовое изображение, которое я загрузил. Второе - это то, что я хочу показать. Но после показа графика p ie (в моем приложении используется очень много типов графиков, но только после этой проблемы возникает график p ie), он работает как первое изображение.

Итак, я написал код после отрисовки p ie graph self.MplWidget.canvas.axes.clear() вот так. Но это ничего не меняет.

Если я перезагружаю свое приложение, оно работает хорошо.

Как я могу показать свой график как image2 после show p ie graph?

это мой код для отображения гистограммы

self.MplWidget.canvas.axes.bar(ind, graph1, width, label='price1' )
self.MplWidget.canvas.axes.bar(ind, graph2, width, bottom=graph1, yerr=Std, label='price2')
self.MplWidget.canvas.axes.title.set_text('graph1')
self.MplWidget.canvas.axes.set_xticks(ind)
self.MplWidget.canvas.axes.set_xticklabels(temp['date'], rotation=90 )
self.MplWidget.canvas.axes.legend(loc='best')
self.MplWidget.canvas.draw()

это мой код для отображения диаграммы p ie

self.MplWidget.canvas.axes.title.set_text('pie graph') self.MplWidget.canvas.axes.pie(sizes, labels=labels, autopct='%1.1f%%',shadow=True, startangle=90) self.MplWidget.canvas.axes.axis('equal')<br> self.MplWidget.canvas.draw() self.MplWidget.canvas.axes.clear()

1 Ответ

0 голосов
/ 12 марта 2020

Axes.pie устанавливает соотношение сторон осей на «равный», что, похоже, портит гистограмму. Вы можете попробовать установить self.MplWidget.canvas.axes.set_aspect('auto') при построении гистограммы, чтобы сбросить соотношение сторон на «Авто». Возможно, вы также захотите установить self.MplWidget.canvas.axes.set_frame_on(True), поскольку Axes.pie также удаляет рамку вокруг графика.

Другим вариантом может быть использование отдельных виджетов для каждого из графиков и объединение их в QStackedWidget или QTabWidget.

...