Как отобразить линейный график в Xamarin.Forms, который может отображать:
всплывающие окна с подробностями (когда вы нажимаете точку данных, для нее появляется дополнительная информация, например, дата и время и числовое значение)
горизонтальные линии для порогов (аналогично Показать пороговую линию в Flex Chart, но для Xamarin).
Я просмотрел Графики для Xamarin.Forms и пока не нашел именно то, что ищу. Примечание. В настоящее время я использую https://github.com/aloisdeniel/Microcharts.
Должен быть бесплатным, и я предпочитаю открытый исходный код. Если нет возможности сделать это, как сделать собственный рендерер либо поверх MicroCharts (то, что я использую сейчас), либо с нуля? Будет ли SkiaSharp работать для этой цели, поскольку это библиотека/фреймворк для 2D-рисования? Также ДОЛЖЕН работать как на IOS, так и на Android.





Вы можете сделать такой обходной путь, выполнив процесс в коде, используя Boxview и настроив запрос высоты. что касается вашего примера, вы можете сделать что-то вроде этого:
<StackLayout>
<BoxView HeightRequest = "1" BackgroundColor = "Red" Margin = "0,-100,0,0"> //Red Line
<StackLayout Orientation = "Horizontal" x:Name = "BarGraph"/>
</StackLayout>
в коде для создания гистограммы:
а также игра Boxview (красная линия в комментарии) со значением с отрицательным значением, чтобы привести его в соответствие с гистограммой.
Попробуйте Оксиплот https://github.com/oxyplot/oxyplot/
Вот документы http://docs.oxyplot.org/en/latest/models/index.html
Это с открытым исходным кодом. вы можете создать сложный график с этой библиотекой. Надеюсь, поможет.
вот пример с LineSeries.
var model = new PlotModel("LineSeries") { LegendSymbolLength = 24 };
var s1 = new LineSeries("Series 1")
{
Color = OxyColors.SkyBlue,
MarkerType = MarkerType.Circle,
MarkerSize = 6,
MarkerStroke = OxyColors.White,
MarkerFill = OxyColors.SkyBlue,
MarkerStrokeThickness = 1.5
};
s1.Points.Add(new DataPoint(0, 10));
s1.Points.Add(new DataPoint(10, 40));
s1.Points.Add(new DataPoint(40, 20));
s1.Points.Add(new DataPoint(60, 30));
model.Series.Add(s1);
вы можете создать любое количество серий и продолжать добавлять их в model.Series
Документация для xamarin.forms ОЧЕНЬ плохая, и мне не удалось заставить ее что-либо отображать.
Даже официальные примеры не работают... Разочаровывает. Я думаю, мне нужно что-то придумать с микрокартами.
Steema Teechart .net — единственная работающая библиотека. Кому интересно, перейдите на https://www.steema.com/product/net.
и его документация, хоть и неполная: http://wiki.teechart.net/index.php?title=TeeChart_for_NET
SkiaChart бесплатна, гибка, проста в использовании, и да, она тоже с открытым исходным кодом.