我想用 LiveCharts 在图表中绘制我的双值。但我无法转换我的价值观。我收到错误:
Cannot convert source type 'System.Collections.Generic.List<double>
to target type 'LiveCharts.IChartValues'
Run Code Online (Sandbox Code Playgroud)
这是我的代码(可能不需要):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Media;
using LiveCharts;
using LiveCharts.Wpf;
using Brushes = System.Windows.Media.Brushes;
namespace LiveAnalysis
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var xvals = new List<DateTime>();
var yvals = new List<double>();
using (var db = new SystemtestFunctions.TestingContext())
{
var lttResults = db.LttResults;
var par1 = 0.0; …Run Code Online (Sandbox Code Playgroud) 我有一个带有多个图表的“仪表盘”。其中之一是带有多个系列的饼图。
LiveCharts有一个DataClick事件
DataClick(object sender, ChartPoint chartPoint)
Run Code Online (Sandbox Code Playgroud)
sender是类型PieSlice。如何SeriesCollection从该事件或图表名称/ ID访问?
我要实现的目标是发送事件的访问图,然后是系列集合并检查哪个系列/饼图触发了该事件。
我只是找不到更改 y 轴刻度标签格式的解决方案。0.03现在我得到了像和 之类的标签0.035。但我总是需要小数点后面的三位数字。最大的问题是,如何访问标签格式?
这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Media;
using LiveCharts;
using LiveCharts.Helpers;
using LiveCharts.Wpf;
using LiveCharts.Wpf.Charts.Base;
using Brushes = System.Windows.Media.Brushes;
using Color = System.Windows.Media.Color;
using MessageBox = System.Windows.Forms.MessageBox;
namespace LiveAnalysis
{
public partial class Form1 : Form
{
List<DateTime> xvals = new List<DateTime>();
List<double> yvals = new List<double>();
private int _amountValues;
private int _startValue;
private List<double> _yvalsRange; …Run Code Online (Sandbox Code Playgroud) 我有四个列表(x1List、y1List、x2List、y2List),每个列表包含 1000 个值,我想使用 LiveCharts 将这些列表绘制为 x 和 y 值。
我了解如何使用绘制 y 值;
new LineSeries
{
Title = "Series1",
Values = y1List.AsChartValues(),
PointGeometry = null
},
new LineSeries
{
Title = "Series2",
Values = y2List.AsChartValues(),
PointGeometry = null
},
Run Code Online (Sandbox Code Playgroud)
我不明白如何将 x 值应用于各自的系列。
我是 C# 新手,所以如果这是我忽略的简单事情,我深表歉意。
嗨我有一个var变量,我需要根据if语句初始化它这是我的代码:
var series = new ColumnSeries{};
if(integer == 0)
series = new LineSeries{};
else if (integer == 1)
series = new PieSeries{};
else if (integer == 2)
series = new AreaSeries{};
Run Code Online (Sandbox Code Playgroud)
但它得到错误,我不能多次初始化变量,所以我怎么能不止一次初始化这个变量?我需要根据if语句更改我的图表类型,所以我尝试了这种方式.
我正在为 VB.NET/WPF 使用 beto-rodriguez 的实时图表,我在代码隐藏中设置源数据并在用户单击按钮时显示图。
我已使用chart.Zoom = ZoomingOptions.X. 我的问题是,如果我缩放到 150% 并远离点 (0,0) 平移,并且我在同一个控件上加载一个新图,则不会重置缩放,因为新图将放大 150 % 并按相同的值平移。
有没有办法在每次.Series重置其值时重置图表缩放和平移?
顺便说一下,我的 x 轴包含日期,因此,设置最小值和最大值不起作用。
我正在尝试显示日期并将其恢复到Labels = strings,但我在网上遇到错误list.Add((string)myReader["Date"]);
这是我的代码:
con.Open();
myReader = cmdDB.ExecuteReader();
List<string> list = new List<string>();
while (myReader.Read())
{
list.Add((string)myReader["Date"]);
}
string[] strings = list.Select(x => x.ToString()).ToArray();
cartesianChart1.AxisX.Add(new Axis
{
Title = "Date",
Labels = strings
});
cartesianChart1.AxisY.Add(new Axis
{
Title = "Sales",
LabelFormatter = value => value.ToString()
});
Run Code Online (Sandbox Code Playgroud)
有什么解决办法吗?谢谢!PS 我正在使用 LiveCharts 和 MySQL。
我不明白ObservableValue,或者传入一个ObservableValue和传入原始值/类型本身有什么区别?
如果我以下面的例子为例,无论是ObservableValue还是双重类型,Chart都会动态填充随机值并更新图表,包括动画.
为什么ObservableValue?有人可以提出一个例子.
Values = new ChartValues<ObservableValue>
{
new ObservableValue(r.Next(10, 400)),
};
Values = new ChartValues<double>
{
(r.Next(10, 400)),
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 LiveCharts。我有一个表单,用户可以在其中选择 1 个或多个 (4) 参数。
当用户选择 1 个参数时,我用 1 个轴绘制 1 条曲线。但选择2个参数时,我需要2轴。这仅适用于 Y 轴。
<lvc:CartesianChart.AxisY>
<lvc:Axis Foreground="DodgerBlue" Title="" LabelFormatter="{Binding YFormatter}"/>
<lvc:Axis Name="Axis2" Foreground="IndianRed" Title="" Position="RightTop" IsEnabled="False">
<lvc:Axis.Separator>
<lvc:Separator Style="{StaticResource CleanSeparator}"></lvc:Separator>
</lvc:Axis.Separator>
</lvc:Axis>
<lvc:Axis Name="Axis3" Foreground="Black" Title="" Position="RightTop" IsEnabled="False" Visibility="Hidden">
<lvc:Axis.Separator>
<lvc:Separator Style="{StaticResource CleanSeparator}" ></lvc:Separator>
</lvc:Axis.Separator>
</lvc:Axis>
</lvc:CartesianChart.AxisY>
Run Code Online (Sandbox Code Playgroud)
我尝试隐藏轴并禁用它,但是当我为 1 个参数绘制曲线时我不能有 1 个轴。
你有什么想法吗?
提前致谢。问候。
我正在使用Live Charts库,但遇到了一个问题,其中y轴的最小值为“ -1000”。
如何将其设置为0?我尝试在Yaxis集合下的winforms中,将那里的MinValue设置为0,但这似乎无济于事。
这是我绘制图表的方式:
cartesianChart1.Series.Add(
new LineSeries
{
Title = "Series 1",
Values = graph1.ReturnGraphData().AsChartValues(),
LineSmoothness = 0, //straight lines, 1 really smooth lines
PointGeometry = null,
PointGeometrySize = 0,
});
Run Code Online (Sandbox Code Playgroud)
方法“ ReturnGraphData()”返回一个int数组。
这也是我在winforms设计器中对YAxis的设置:
就像我之前说过的,当我在属性中将MinValues设置为0时,它什么也不做或使Visual Studio崩溃。它也恢复为NaN。
我正在尝试编写一个 WPF 应用程序来为我拥有的一系列数字绘制折线图。这些数字列在一个.CSV文件中,我将在运行时读取该文件。因此,我不知道我将拥有的系列数,也不知道每个系列的最大/最小值。
为了进行演示并简洁起见,请看以下示例。将这些系列值视为我将从.CSV实际应用程序中的文件中读取的值。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Title = "Series 1",
Values = new ChartValues<double> { 4, 66, 5, 2, 4 },
},
new LineSeries
{
Title = "Series 2",
Values = new ChartValues<double> { 6, 7, 3, 4, 6 },
},
new LineSeries
{
Title = "Series 3",
Values = new ChartValues<double> { 4, 2, 7, 2, 7 }, …Run Code Online (Sandbox Code Playgroud) livecharts ×12
c# ×10
wpf ×6
charts ×2
winforms ×2
axis-labels ×1
format ×1
initializer ×1
mysql ×1
var ×1
vb.net ×1
xaml ×1