当比例发生变化或没有足够的空间时,轴上的标记会折叠并变成椭圆形。
是否可以覆盖此行为?即使数字间隔非常近或相互重叠,保持可见标记也非常重要。
最小可重现示例:
import sys
from PySide6.QtCore import QPointF, Qt, QMargins
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout
from PySide6.QtCharts import QChartView, QChart, QLineSeries, QAreaSeries
from PySide6.QtGui import QGradient, QPen, QLinearGradient, QPainter
import math
class TestChart(QWidget):
def __init__(self):
super().__init__()
self.series_0 = QLineSeries()
self.series_1 = QLineSeries()
for i in range(0, 100, 1):
self.series_0.append([QPointF(i, math.cos(i * 0.1))])
self.series_1.append(QPointF(0, 0))
self.series_1.append(QPointF(100, 0))
self.series = QAreaSeries(self.series_0, self.series_1)
gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1))
gradient.setColorAt(0.0, 0x3cc63c)
gradient.setColorAt(1.0, 0x26f626)
gradient.setCoordinateMode(QGradient.ObjectBoundingMode)
self.series.setBrush(gradient)
#
self.chart = QChart()
self.chart.addSeries(self.series)
self.chart.legend().hide()
self.chart.createDefaultAxes()
self.chart.setMargins(QMargins(0,0,0,0))
_chart_view = QChartView(self.chart)
_chart_view.setRenderHint(QPainter.Antialiasing)
vbox = QVBoxLayout()
vbox.addWidget(_chart_view)
self.setLayout(vbox)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = TestChart()
window.show()
window.resize(400, 300)
sys.exit(app.exec())

减小所需轴上的字体大小。在下面的坐标区代码中
QValueAxis, forcreateDefaultAxes将类似于self.chart.AxisY().setPixelSize(5).