我正在使用OxyPlot庫,並且我試圖顯示一個堆積列圖表,但它呈現錯誤。適用於Android的OxyPlot Mono(又名Xamarin.Android)錯位繪圖。 (堆積列系列)
以下是圖表應該如何成爲一個樣機:
這裏是我如何創建PlotModel:
private void InitWidget()
{
_goalsPlotModel = new PlotModel ("Metas") {
LegendPlacement = LegendPlacement.Outside,
LegendPosition = LegendPosition.BottomCenter,
LegendOrientation = LegendOrientation.Horizontal,
LegendBorderThickness = 0
};
SelectedChannel = new ListOfValue();
SelectedProduct = new Product();
SelectedChannel.Code = string.Empty;
SelectedProduct.ProductCode = string.Empty;
LoadFilters();
Refresh();
}
這裏是我添加系列:
private void FillGoalsPlotModel()
{
_goalsPlotModel.Series.Clear();
_goalsPlotModel.Axes.Clear();
var goals = new ColumnSeries {
Title = "Goals",
FillColor = OxyColors.Orange,
IsStacked = true,
StrokeColor = OxyColors.Black,
StrokeThickness = 1
};
var sales = new ColumnSeries {
Title = "Sales",
FillColor = OxyColors.LightGreen,
IsStacked = true,
StrokeColor = OxyColors.White,
StrokeThickness = 1
};
var surplus = new ColumnSeries {
Title = "Surplus",
FillColor = OxyColors.Cyan,
IsStacked = true,
StrokeColor = OxyColors.Black,
StrokeThickness = 1
};
var categoryAxisForMonths = new CategoryAxis {
Position = AxisPosition.Bottom
};
var valueAxis = new LinearAxis (AxisPosition.Left) {
MinimumPadding = 0,
MaximumPadding = 0.06,
AbsoluteMinimum = 0
};
foreach (IGoal goal in _goals) {
if (goal.GetSales() > goal.GetGoalValue()) {
sales.Items.Add (new ColumnItem { Value = goal.GetGoalValue() });
surplus.Items.Add (new ColumnItem { Value = goal.GetSurplus() });
} else {
sales.Items.Add (new ColumnItem { Value = goal.GetSales() });
goals.Items.Add (new ColumnItem {
Value = goal.GetGoalValue() - goal.GetSales()
});
}
}
foreach (var month in GetMonths()) {
categoryAxisForMonths.Labels.Add (month);
}
_goalsPlotModel.Series.Add (sales);
_goalsPlotModel.Series.Add (goals);
_goalsPlotModel.Series.Add (surplus);
_goalsPlotModel.Axes.Add (categoryAxisForMonths);
_goalsPlotModel.Axes.Add (valueAxis);
RaisePropertyChanged (() => GoalsPlotModel);
}
以下是它是如何呈現的:
如果我設置IsStacked
到false
它只是畫垂直條形圖,但每欄底部在y = 0
不如預期,但如果IsStacked
設置爲true
每欄底部在不同y
值。
它是Android版本的Mono for Android渲染器的Oxyplot中的錯誤嗎? 或者只是我做錯了什麼? (如果是的話,我在做什麼錯了?)
嘿阿爾貝託,你能張貼一些輸入(可能是假的)我可以測試? – Noctis