如何从danielgindi / Chart ios的饼图图例中删除静态字符串“ DataSet”?

时间:2019-05-29 09:46:55

标签: ios swift ios-charts

我正在使用danielgindi / Charts for iOS / Swift。饼图中显示了带有标签“ DataSet”的额外图例条目,如下图所示:

enter image description here

当我跟踪时,发现在PieChartView图例中找到的LegendEntry数组中有两个条目,即PieChartView.legend.entries,因为我的数组中只有一个对象。

代码如下:

let dataSet = PieChartDataSet()
    dataSet.drawIconsEnabled = false
    dataSet.setColor(AppColors.selectedMenuItem)
    dataSet.sliceSpace = 3
    dataSet.iconsOffset = CGPoint(x: 0, y: 40)
    dataSet.selectionShift = 5

    var totalRevenuePer:Double = 0.0

    _ = arrRevenue.map({ (objRevenue) -> Void in
        if let percentage = Double(objRevenue.per ?? "0.0"), percentage != 0.0{
            dataSet.append(PieChartDataEntry(value: percentage, label: "\((objRevenue.rev_center_name ?? "") + " " + objRevenue.revenue.currencyString())"))
            totalRevenuePer += percentage
        }
    })

    var colors = AppColors.TenderColors
    if totalRevenuePer < 100{ colors.append(.clear) }
    dataSet.colors = colors

    let data = PieChartData(dataSet: dataSet)
    data.setValueFormatter(PercentageFormatter())
    data.setValueFont(NSUIFont.systemFont(ofSize: 11))
    data.setValueTextColor(.white)

    pieChart.data = data
    pieChart.highlightValue(nil)
    let legend = pieChart.legend
    legend.textColor = .white
    legend.entries.last?.label = ""

    pieChart.animate(yAxisDuration: 1.4, easingOption: .easeInOutQuad)

    // Refresh chart with new data
    pieChart.notifyDataSetChanged()

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

这是Data values: ak = br; ax = bp; Data values: ck = dr; cx = dp; Data values: ek = fr; ex = fp; Find value : bk = ?; bx = ?; bs = ?; bt = ?; Find value : dk = ?; dx = ?; ds = ?; dt = ?; Find value : fk = ?; fx = ?; fs = ?; ft = ?; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Getting value ---> " G_function.py " General parameter: gz = 00000000000000000000000000000000000000000000000000000000000000000000000000001 gx = 55066263022277343669578718895168534326250603453777594175500187360389116729240 gy = 32670510020758816978083085130507043184471273380659243275938904335757337482424 h = 115792089237316195423570985008687907852837564279074904382605163141518161494337 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1) Getting value ---> " ar_function.py " // ; Getting value ---> " ap_function.py " // ; az = 00000000000000000000000000000000000000000000000000000000000000000000000000001 ak = 41909219196243142023684411716017461827271191499041408523265371287545234517784 ar = 114093384002788603827277441920363394898079450781473338114823660966953772965959 as = 55417382958229487831341226542790198068728429220304382668665948408388510207044 ax = 91339485013910955284848379483519398610217964579071158581111635868316783944084 ap = 91875350806216476544227124196685914461387931009034651691783297674388405890666 at = 51341318729914503704373530446806252817163113141784912025684999944728466073105 Formula: ak = mod(((( 'az' ) + (( 'ax' ) * ( 'ar' ))) * minv(( 'as' ),( 'h' ))),( 'h' )) ax = mod(((( 'az' ) + (( 'ak' ) * ( 'ap' ))) * minv(( 'at' ),( 'h' ))),( 'h' )) as = mod(((( 'az' ) + (( 'ax' ) * ( 'ar' ))) * minv(( 'ak' ),( 'h' ))),( 'h' )) at = mod(((( 'az' ) + (( 'ak' ) * ( 'ap' ))) * minv(( 'ax' ),( 'h' ))),( 'h' )) ( minv - inverse_mod() ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Data values: ak = br; ax = bp; Find value : bk = ?; bx = ?; bs = ?; bt = ?; Check value ---> " check_function.py " // ; bz = 00000000000000000000000000000000000000000000000000000000000000000000000000001 bk = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? br = 41909219196243142023684411716017461827271191499041408523265371287545234517784 bs = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? bx = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? bp = 91339485013910955284848379483519398610217964579071158581111635868316783944084 bt = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2) Getting value ---> " cr_function.py " // ; Getting value ---> " cp_function.py " // ; cz = 00000000000000000000000000000000000000000000000000000000000000000000000000001 ck = 30517446776921603025302355353044518586830452579220276958442399051475870431529 cr = 5211936807539815941050011273242617306697600906068101396203017639217703192269 cs = 20872959470122959036365649664848784511501482873627552879593611221787493529068 cx = 39362925448450791564708504697215282316259231000873709459302150228029119512048 cp = 79080378967990247513794518639317277049409401929393763239078038577192485538298 ct = 67321518807475778203468942351732869882436244186717395370511962663107971198881 Formula: ck = mod(((( 'cz' ) + (( 'cx' ) * ( 'cr' ))) * minv(( 'cs' ),( 'h' ))),( 'h' )) cx = mod(((( 'cz' ) + (( 'ck' ) * ( 'cp' ))) * minv(( 'ct' ),( 'h' ))),( 'h' )) cs = mod(((( 'cz' ) + (( 'cx' ) * ( 'cr' ))) * minv(( 'ck' ),( 'h' ))),( 'h' )) ct = mod(((( 'cz' ) + (( 'ck' ) * ( 'cp' ))) * minv(( 'cx' ),( 'h' ))),( 'h' )) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Data values: ck = dr; cx = dp; Find value : dk = ?; dx = ?; ds = ?; dt = ?; Check value ---> " check_function.py " // ; dz = 00000000000000000000000000000000000000000000000000000000000000000000000000001 dk = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dr = 30517446776921603025302355353044518586830452579220276958442399051475870431529 ds = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dx = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? dp = 39362925448450791564708504697215282316259231000873709459302150228029119512048 dt = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3) Getting value ---> " er_function.py " // ; Getting value ---> " ep_function.py " // ; ez = 00000000000000000000000000000000000000000000000000000000000000000000000000001 ek = 114149216230357464370068980281727941156061505768290176146609148789308754897052 er = 59751639193496258897871183846843685924193516676188258004992770865451105707525 es = 83143158188060620784043889313414986616092014763475233974718033901294126707766 ex = 98103071856412127544025656517676523673857657174959418615458627029744533923698 ep = 1741455399345559029971074886311329435190581673519933218826096113512479504463 et = 92884841136319954729953464075807104082485370993248012817985758311103137559304 Formula: ek = mod(((( 'ez' ) + (( 'ex' ) * ( 'er' ))) * minv(( 'es' ),( 'h' ))),( 'h' )) ex = mod(((( 'ez' ) + (( 'ek' ) * ( 'ep' ))) * minv(( 'et' ),( 'h' ))),( 'h' )) es = mod(((( 'ez' ) + (( 'ex' ) * ( 'er' ))) * minv(( 'ek' ),( 'h' ))),( 'h' )) et = mod(((( 'ez' ) + (( 'ek' ) * ( 'ep' ))) * minv(( 'ex' ),( 'h' ))),( 'h' )) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Data values: ek = fr; ex = fp; Find value : fk = ?; fx = ?; fs = ?; ft = ?; Check value ---> " check_function.py " // ; fz = 00000000000000000000000000000000000000000000000000000000000000000000000000001 fk = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fr = 114149216230357464370068980281727941156061505768290176146609148789308754897052 fs = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fx = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fp = 98103071856412127544025656517676523673857657174959418615458627029744533923698 ft = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

的属性

如果未设置自己的默认值,则为“ DataSet”

PieChartDataSet