【问题标题】:how to display two values in pie chart如何在饼图中显示两个值
【发布时间】:2015-10-19 05:51:14
【问题描述】:

我是新手。我有一个名为 dailyPortfolioPricesNSObject 类,在接口文件中我声明了 3 个属性

dailyPortfolioPrices.h

@interface dailyPortfolioPrices : NSObject 

@property (nonatomic, weak) NSDecimalNumber *num1;

@property (nonatomic, weak) NSDecimalNumber *num2;

@property (nonatomic, weak) NSDecimalNumber *num3;

dailyPortfolioPrices.m 文件中

我合成了上面声明的属性。我创建了一个名为PageContentViewControllerUIViewController 类来显示graph

在 PageContentViewController.m 文件的 voidDidAppear 中,我声明了 dailyPortfolioPrices 的值

dailyPortfolioPrices *dailyPortfolioPrices1 = [dailyPortfolioPrices new];
dailyPortfolioPrices1.num1 = @"586.13";
dailyPortfolioPrices1.num2 = @"606.53";
dailyPortfolioPrices1.num3 = @"32.03";


dailyPortfolioPrices *dailyPortfolioPrices2 = [dailyPortfolioPrices new];
dailyPortfolioPrices2.num1 = @"426.13";
dailyPortfolioPrices2.num2 = @"506.53";
dailyPortfolioPrices2.num3 = @"22.03";


dailyPortfolio = [NSArray arrayWithObjects: dailyPortfolioPrices1, dailyPortfolioPrices2, nil];

并将编码作为

![在此处输入图片描述][2]

用于计算百分比值

NSDecimalNumber *price = [dailyPortfolio objectAtIndex:index];

NSDecimalNumber *percent = [price decimalNumberByDividingBy:portfolioSum];

用于设置显示标签

NSString *labelValue = [NSString stringWithFormat:@"$%0.2f USD (%0.1f %%)", [price floatValue], ([percent floatValue] * 100.0f)];

创建并返回带有标签文本的图层

return [[CPTTextLayer alloc] initWithText:labelValue style:labelText]; }

-(NSString *)legendTitleForPieChart:(CPTPieChart *)pieChart recordIndex:(NSUInteger)index {

    if (index < [[[CPDStockPriceStore sharedInstance] tickerSymbols] count]) {

        return [[[CPDStockPriceStore sharedInstance] tickerSymbols] objectAtIndex:index]; 

        }

    return @"N/A"; 
}

但我的图表中没有显示任何数据。谁能告诉我哪里出错了。我想使用indexUIViewController 中显示pie chart

提前感谢您的帮助

【问题讨论】:

    标签: ios core-plot pie-chart


    【解决方案1】:

    但是……为什么?

    您将您的字段与完全不同的常数进行比较,因此我很确定 numberForPlot 总是返回 0。

    ===========

    再说一遍,为什么?

    1. labelText 此处未使用
    2. 当你需要返回一个CPTLayer时你返回一个十进制数

    我不知道您对此有何期望...我并不是要粗鲁,但您似乎不知道自己在做什么。

    【讨论】:

    • 你能告诉我如何改变它
    • 删除你的回报周围的 if
    • 我删除了那个,但我的图表没有显示任何值
    • 其实labelText就是代表每一个单独的价格
    • 不改变它是未使用的并且你返回的东西不是你需要返回的东西。
    【解决方案2】:

    -numberForPlot:field:recordIndex: 必须返回一个数字(或nil)。 dailyPortfolio 数组包含其他内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-04
      • 2023-03-20
      • 1970-01-01
      • 2017-04-26
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多