Set*_*hmr 5 charts xcode swift
我有两个BarChartDataSets。其中一个始终为3,另一个为2或3。我测试了3.0.0版中的代码,一切正常。当3.0.1发布时,它打破了我的图表。我总是具有正确的条数,但是当第二个数据集的大小仅为2时,我有6个标签,而不是5个。它与stringForValueDelegate函数无关。我X使用int 设置值,这些值与要在该索引处表示的Bar线性相关,因此,当正常工作时,每个bar均等距,但是当我有6个标签和5个bar时,它们均不均等。
左边的一个显示问题,右边的一个显示当我的BarChartDataSet大小为3时的样子。它正在复制图表上的最后一个值,并将其添加为左边的第6个标签。在3.0.0中,左侧的标签只有5个标签。
我挖成自己的代码,并在那里他们创建标签XAxisRendererHorizontalBarChart.swift
权利,他们打电话前drawLabel()
我叫print("xAxis entries: \(xAxis.entries.count)")
这打印xAxis entries: 6
到控制台,即使之前,我打电话let chartData = BarChartData(dataSets: [chartDataSet1, chartDataSet2])
我叫print("dataEntries1 count: \(dataEntries1.count),
dataEntries2 count: (dataEntries2.count)")
其打印dataEntries1 count: 3, dataEntries2 count: 2
首先,xAxis.entries和dataSet.entries是完全不同的。
xAxis.entries是在轴上显示为标签的值,而dataSet.entries是为数据显示的值,例如折线图中的点值或条形图中的条形值。
对于 x 轴,它通过数据条目的最小/最大值计算标签计数。在图表 3.0 中,x 轴的行为与 y 轴类似,因此它会像 y 轴一样计算 x 轴条目,请查看computeAxisValues()详细信息。
因此xAxis.entries和dataSet.entries不必大小相等。
如果您想将 x 轴标签计数设置为与条数相同,您可以调用setLabelCount(5(6), true):
open func setLabelCount(_ count: Int, force: Bool)
{
self.labelCount = count
forceLabelsEnabled = force
}
Run Code Online (Sandbox Code Playgroud)
注意,不要调用 labelCount 设置器,因为它是不同的:
/// the number of label entries the axis should have
/// max = 25,
/// min = 2,
/// default = 6,
/// be aware that this number is not fixed and can only be approximated
open var labelCount: Int
{
get
{
return _labelCount
}
set
{
_labelCount = newValue
if _labelCount > 25
{
_labelCount = 25
}
if _labelCount < 2
{
_labelCount = 2
}
forceLabelsEnabled = false
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1328 次 |
| 最近记录: |