zedgraph: как получить пунктирные линии независимо от размера физического графика или количества точек данных

когда я рисую свои данные, тире видны только в том случае, если: количество точек данных мало, или если я вручную расширяю окно, или если я увеличиваю график. я ожидаю, что я увижу тире независимо от этих факторов, как в Excel. я пропускаю конфигурацию zedgraph? большое спасибо.

   void plot_array(ref ZedGraphControl zgc)
   {
       int num_samples = 100;
       double[] xvals = new double[num_samples];
       double[] yvals = new double[num_samples];

       for (double i = 0; i < num_samples; i++)
       {
           xvals[(int)i] = i / 10;
           yvals[(int)i] = Math.Sin(i / 10);
       }

       var lineItem = zgc.GraphPane.AddCurve("Can't see the dashes", xvals, yvals, Color.Black);

       lineItem.Line.Style = System.Drawing.Drawing2D.DashStyle.Custom;
       lineItem.Line.DashOn = 10;
       lineItem.Line.DashOff = 10;
       lineItem.Symbol.Type = SymbolType.None;

       zgc.AxisChange();
       zgc.Refresh();
   }

person 4mla1fn    schedule 18.12.2013    source источник


Ответы (1)


Очевидно, с вашими настройками все в порядке, все нормально, так как у вас много данных, пунктирная линия стремится (выглядит) прямой линией. Если вы пытаетесь:

lineItem.Line.DashOn = 1;
lineItem.Line.DashOff = 10;

это решает вашу проблему

person chouaib    schedule 19.12.2013
comment
Спасибо за ответ. это сработало для этого конкретного примера, но не решает проблему в целом. (на самом деле мое приложение будет иметь тысячи точек, представляющих данные датчика.) Я изменил количество выборок в моем примере со 100 до 500, а числители в строках xval/yval с 10 до 50 (как показано выше), и проблема повторяется. . пунктирная линия не должна зависеть от размера данных или физического размера графика, но, похоже, zedgraph не может этого сделать. (?) - person 4mla1fn; 19.12.2013
comment
не только zedGraph не может этого сделать, но никто не может этого сделать, если это 1000 точек в пределах (небольшой) области, плотность будет настолько высокой, что я предлагаю сделать вашу область шире, например, поскольку вы рисуете данные с датчика так что ваша ось X будет Time [s], верно? я предлагаю вам прокрутить его, я думаю, это даст вам то, что вы хотите - person chouaib; 20.12.2013
comment
я с уважением не согласен. могу в экселе. вот ссылка на изображение, которое показывает идеально равномерную штриховку для 500, 5000 и 10000 точек в excel. docs.google.com/file/d/0B4fQuM2UwR0Ub1NiQVRJLTdUZGc/ - person 4mla1fn; 20.12.2013