我正在寻找在zedgraph线图X轴上使用日期时间字段的示例.
编辑 - 如何设置XAxis最大比例
myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.Min = 0;
myPane.XAxis.Scale.Max = 12;
Run Code Online (Sandbox Code Playgroud) 我正在使用ZedGraph在C#中绘制我的情节.我需要知道鼠标点击了哪个条形图(条形图).我怎样才能做到这一点?有没有办法通过一个点来获得一个条形图,例如改变条形图的颜色?
问:任何人都有使用ZedGraph/MS-Chart控件的经验吗?
我在考虑使用哪个?
基本上,我有ZedGraph的倾向,
因为我需要.NET framework 2.0,而MS-Chart是3.5(我不知道3.5程序集在2.0上有多好)
,因为我也可以私下使用它(我使用它) Linux私有).
但我不知道MS-Charts是否提供更多.
例如ZedGraph是否提供合理质量的3D饼图?
合理的色彩设计,如渐变色?
如果是这样,它是否像MS-Chart控件一样简单(或几乎一样简单)?
ZedGraph是否提供数据绑定,例如数据库中的数据表?
我想用动态图表制作ZedGraph:
如何使ZedGraph轴反转和时间轴?谢谢
UPD 1:我必须尝试使用以下代码:
GraphPane myPane = zg1.GraphPane;
myPane.YAxis.Type = AxisType.Date;
myPane.YAxis.Scale.MajorUnit = DateUnit.Minute;
myPane.YAxis.Scale.MinorUnit = DateUnit.Second;
myPane.XAxis.IsVisible = false;
myPane.X2Axis.IsVisible = true;
myPane.X2Axis.MajorGrid.IsVisible = true;
myPane.X2Axis.Scale.Min = 0;
myPane.X2Axis.Scale.Max = 600;
myPane.YAxis.Scale.Format = "HH:mm:ss";
PointPairList list = new PointPairList();
PointPairList list2 = new PointPairList();
for (int i = 0; i < 36; i++)
{
double x = (double)i * 5.0;
double y = (double)new XDate(DateTime.Now.AddSeconds(i));
list.Add(y, x);
//list2.Add(y2, x);
listBox1.Items.Add("x = " + x + " y = …Run Code Online (Sandbox Code Playgroud) 我有一个ZedGraphControl,里面有几条曲线,我想在一些固定的x位置添加垂直线.这些线当然应该只在实际的图形区域内.
我试过跟随
LineObj line = new LineObj(Color.Black, xPos, myPane.YAxis.Scale.Min, xPos, myPane.YAxis.Scale.Max);
line.Line.Style = System.Drawing.Drawing2D.DashStyle.Dash;
line.Line.Width = 1f;
myPane.GraphObjList.Add(line);
Run Code Online (Sandbox Code Playgroud)
这个工作正常,直到用户缩放图形,然后垂直线将伸出实际的图形区域(参见下面的图片链接,也注意它没有在图形内部虚线,奇数).
http://imageshack.us/photo/my-images/196/zedgraphzoom.png/
有没有办法解决这个问题(如果只有一种方法可以获得当前缩放的myPane.Xaxis.Scale.Min和Max,然后更新ZoomEvent中的图形?)或者是否有更好的类/方法可以使用其他为此目的比LineObj?
我有一个.wav文件,我正在使用ZedGraph绘制波形.我正在计算每秒的.wav文件的能量,如果能量小于4,我想用不同的颜色绘制样本.我创建了两个PointPairLlist并且LineItem这样做但是在合并这两个列表时存在问题.这是我的代码以及我的图表的显示方式.
LineItem myCurveAudio;
LineItem myCurveAudio2;
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
while(true)
{
for (int i = 0; i < fmainBuffer.Length; i++)
{
float segmentSquare = fmainBuffer[i] * fmainBuffer[i];
listOfSquaredSegment.Add(segmentSquare);
}
float energy = (float)Math.Sqrt(listOfSquaredSegment.Sum());
if (energy < 4)
{
for (int i = 0; i < read; i += (int)window)
{
list1.Add((float)(count / ((float)read / (float)window)), fmainBuffer[i]);
count++;
}
}
else
{
for (int i = 0; i < read; i …Run Code Online (Sandbox Code Playgroud) 我想显示一个不可缩放的ZedGraph控件.如何在ZedGraph中禁用鼠标滚轮缩放功能?
在ZedGraph中,我如何在Y轴和日期上绘制时间(如00:00,02:00,04:00等)(如12月4日至11日,4月13日至4月11日,4月14日 - 11,等等)在X轴上?条形设置已设置为BarType.Stack.
示例代码非常有用.
我正在创建一个C#visual studio表单应用程序,它使用zedgraph绘制程序收集的数据,但是在绘制数据时我遇到了以下问题:
我的y轴值通常在100,000+范围内,因此当zed graph绘制值时,它会用0,10,15,20,25之类的东西标记y轴标签,然后在y轴标签上附加" (10 ^ 3)"到标题并将相应地绘制值.我想要做的是让它标记y轴的值为0,10,000,15,000,20,000等或0,10k,15k,20k等等,而不是调整y轴标题.
我试过设置,YAxis.Scale.MajorStep = double.Parse("10000");但唯一的效果是在y轴上添加了更多的刻度线,但没有其他效果.这是我绘制数据的代码:
private void createGraph()
{
GraphPane myPane = zdc_graph.GraphPane;
myPane.CurveList.Clear();
myPane.GraphObjList.Clear();
myPane.Title.Text = this.monitoredHost.hostName + "\nWorkState[" +
this.monitoredHost.currentWorkState + "]";
myPane.XAxis.Title.Text = "";
myPane.YAxis.Title.Text = "OPS Per Second";
myPane.YAxis.Scale.FontSpec.FontColor = Color.Blue;
myPane.YAxis.Title.FontSpec.FontColor = Color.Blue;
myPane.YAxis.Scale.MaxAuto = true;
myPane.Y2Axis.Title.Text = "Reading";
myPane.Y2Axis.IsVisible = true;
myPane.Y2Axis.Scale.FontSpec.FontColor = Color.Red;
myPane.Y2Axis.Title.FontSpec.FontColor = Color.Red;
myPane.XAxis.Type = AxisType.Date;
myPane.XAxis.Scale.Format = "T";
myPane.XAxis.Scale.MajorUnit = DateUnit.Second;
myPane.YAxis.Scale.Min = 0;
myPane.YAxis.Scale.MajorStep = double.Parse("10000");
myPane.Y2Axis.Scale.Min = 0;
LineItem kpiCurve …Run Code Online (Sandbox Code Playgroud) 我正在WinForm中构建并显示ZedGraph.当我右键单击图表时,有一个"显示点值"选项.启用此功能后,将鼠标悬停在某个点上将为该点提供X/Y值.