public void Test_RGB_analysis() { Random rand = new Random(0); double[] ys = DataGen.RandomWalk(rand, 100); var plt = new ScottPlot.Plot(400, 300); plt.Style(figBg: System.Drawing.Color.Gray, dataBg: System.Drawing.Color.Gray); plt.PlotSignal(ys, yOffset: 0, color: System.Drawing.Color.FromArgb(255, 0, 0), label: "red", lineWidth: 2); plt.PlotSignal(ys, yOffset: 1, color: System.Drawing.Color.FromArgb(0, 255, 0), label: "green", lineWidth: 3); plt.PlotSignal(ys, yOffset: 2, color: System.Drawing.Color.FromArgb(0, 0, 255), label: "blue", lineWidth: 4); plt.PlotSignal(ys, yOffset: 3, color: System.Drawing.Color.FromArgb(0, 0, 0), label: "black"); plt.PlotSignal(ys, yOffset: 4, color: System.Drawing.Color.FromArgb(255, 255, 255), label: "white"); plt.Legend(); System.Drawing.Bitmap bmp = plt.Render(); var means = MeanPixel(bmp); Console.WriteLine($"mean bitmap intensity (ARGB): {means.A}, {means.R}, {means.G}, {means.B}"); // mean bitmap intensity (ARGB): 255, 123.4157, 124.8481, 126.327066666667 Assert.AreEqual(means.A, 255); // image is not transparent Assert.Greater(means.B, means.G); // blue line is thicker than green line Assert.Greater(means.G, means.R); // green line is thicker than red line }
public FormsPlot() { InitializeComponent(); rightClickMenu = new ContextMenuStrip(); rightClickMenu.Items.Add("Save Image"); rightClickMenu.Items.Add("Settings"); rightClickMenu.Items.Add("Help"); rightClickMenu.ItemClicked += new ToolStripItemClickedEventHandler(RightClickMenuItemClicked); pbPlot.MouseWheel += PbPlot_MouseWheel; isDesignerMode = Process.GetCurrentProcess().ProcessName == "devenv"; lblTitle.Visible = isDesignerMode; lblVersion.Visible = isDesignerMode; lblVersion.Text = Tools.GetVersionString(); pbPlot.BackColor = ColorTranslator.FromHtml("#003366"); lblTitle.BackColor = ColorTranslator.FromHtml("#003366"); lblVersion.BackColor = ColorTranslator.FromHtml("#003366"); plt = new Plot(); plt.Style(Style.Control); settings = plt.GetSettings(showWarning: false); PbPlot_MouseUp(null, null); PbPlot_SizeChanged(null, null); }
public ScottPlotUC() { InitializeComponent(); plt.Style(ScottPlot.Style.Control); pbPlot.MouseWheel += PbPlot_MouseWheel; RightClickMenuSetup(); UpdateSize(); Render(); }
public FormsPlot() { InitializeComponent(); SetupMenu(); SetupTimers(); plt.Style(ScottPlot.Style.Control); pbPlot.MouseWheel += PbPlot_MouseWheel; PbPlot_SizeChanged(null, null); }
public ScottPlotUC() { InitializeComponent(); plt.Style(ScottPlot.Style.Control); pbPlot.MouseWheel += PbPlot_MouseWheel; if (Process.GetCurrentProcess().ProcessName == "devenv") { ScottPlot.Tools.DesignerModeDemoPlot(plt); } PbPlot_SizeChanged(null, null); }
public void Test_FigureBackground_SupportsTransparency() { var plt = new ScottPlot.Plot(600, 400); plt.PlotSignal(DataGen.Sin(51)); var mean1 = TestTools.MeanPixel(plt.GetBitmap()); plt.Style(figBg: Color.Transparent); var mean2 = TestTools.MeanPixel(plt.GetBitmap()); Assert.Less(mean2.A, mean1.A); }
private ScottPlot.Plot TestColormap(Palette cset, int lineWidth, bool dark = false) { var plt = new ScottPlot.Plot(600, 400); for (int i = 0; i < cset.Count(); i++) { double[] ys = DataGen.Sin(51, phase: -i / Math.PI / cset.Count()); var sig = plt.AddSignal(ys, color: cset.GetColor(i)); sig.MarkerSize = 0; sig.LineWidth = lineWidth; } if (dark) { plt.Style(Style.Gray1); plt.Style(darkColor, darkColor); } plt.Title($"Colorset '{cset.Name}' has {cset.Count()} colors"); plt.AxisAuto(0); return(plt); }
private ScottPlot.Plot TestColormap(Colorset cset, int lineWidth, bool dark = false) { var plt = new ScottPlot.Plot(600, 400); for (int i = 0; i < cset.Count(); i++) { double[] ys = DataGen.Sin(51, //mult: 1 - .5 * i / cset.Count(), phase: -i / Math.PI / cset.Count()); plt.PlotSignal(ys, color: cset.GetColor(i), markerSize: 0, lineWidth: lineWidth); } if (dark) { plt.Style(Style.Gray1); plt.Style(darkColor, darkColor); } plt.Title($"Colorset '{cset.Name}' has {cset.Count()} colors"); plt.AxisAuto(0); return(plt); }
public void Test_ImageLabel_MuchPaddingInside() { var plt = new ScottPlot.Plot(); plt.Style(Style.Blue1); plt.YAxis.ImageLabel(new System.Drawing.Bitmap("Images/theta.jpg"), 50, 5); plt.XAxis.ImageLabel(new System.Drawing.Bitmap("Images/theta.jpg"), 50, 5); plt.YAxis2.ImageLabel(new System.Drawing.Bitmap("Images/theta.jpg"), 50, 5); plt.XAxis2.ImageLabel(new System.Drawing.Bitmap("Images/theta.jpg"), 50, 5); plt.YAxis2.Ticks(true); plt.XAxis2.Ticks(true); TestTools.SaveFig(plt); }
public void Test_FigureBackground_DefaultIsOpaqueWhite() { var plt = new ScottPlot.Plot(600, 400); plt.PlotSignal(DataGen.Sin(51)); var mean1 = TestTools.MeanPixel(plt.GetBitmap()); plt.Style(figBg: Color.White); var mean2 = TestTools.MeanPixel(plt.GetBitmap()); Assert.AreEqual(mean2.A, mean1.A); Assert.AreEqual(mean2.R, mean1.R); Assert.AreEqual(mean2.G, mean1.G); Assert.AreEqual(mean2.B, mean1.B); }
public void Test_FigureBackground_ColorCanBeSet() { var plt = new ScottPlot.Plot(600, 400); plt.PlotSignal(DataGen.Sin(51)); var mean1 = TestTools.MeanPixel(plt.GetBitmap()); plt.Style(figBg: Color.Blue); var mean2 = TestTools.MeanPixel(plt.GetBitmap()); // we made the background white->blue, meaning we preserved blue while reducing red and green Assert.AreEqual(mean2.A, mean1.A); Assert.Less(mean2.R, mean1.R); Assert.Less(mean2.G, mean1.G); Assert.AreEqual(mean2.B, mean1.B); }
public FormsPlot() { InitializeComponent(); rightClickMenu = new ContextMenuStrip(); rightClickMenu.Items.Add("Save Image"); rightClickMenu.Items.Add("Settings"); rightClickMenu.Items.Add("Help"); rightClickMenu.ItemClicked += new ToolStripItemClickedEventHandler(RightClickMenuItemClicked); pbPlot.MouseWheel += PbPlot_MouseWheel; isDesignerMode = Process.GetCurrentProcess().ProcessName == "devenv"; plt = new Plot(); plt.Style(Style.Control); settings = plt.GetSettings(showWarning: false); PbPlot_MouseUp(null, null); PbPlot_SizeChanged(null, null); }
public static void SetStyle(Plot existingPlot, Style style) { switch (style) { case (Style.Black): existingPlot.Style( figBg: Color.Black, dataBg: Color.Black, grid: ColorTranslator.FromHtml("#2d2d2d"), tick: ColorTranslator.FromHtml("#757575"), label: ColorTranslator.FromHtml("#b9b9ba"), title: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Blue1): existingPlot.Style( figBg: ColorTranslator.FromHtml("#07263b"), dataBg: ColorTranslator.FromHtml("#0b3049"), grid: ColorTranslator.FromHtml("#0e3d54"), tick: ColorTranslator.FromHtml("#145665"), label: ColorTranslator.FromHtml("#b5bec5"), title: ColorTranslator.FromHtml("#d0dae2") ); break; case (Style.Blue2): existingPlot.Style( figBg: ColorTranslator.FromHtml("#1b2138"), dataBg: ColorTranslator.FromHtml("#252c48"), grid: ColorTranslator.FromHtml("#2c334e"), tick: ColorTranslator.FromHtml("#bbbdc4"), label: ColorTranslator.FromHtml("#bbbdc4"), title: ColorTranslator.FromHtml("#d8dbe3") ); break; case (Style.Blue3): existingPlot.Style( figBg: ColorTranslator.FromHtml("#001021"), dataBg: ColorTranslator.FromHtml("#021d38"), grid: ColorTranslator.FromHtml("#273c51"), tick: ColorTranslator.FromHtml("#d3d3d3"), label: ColorTranslator.FromHtml("#d3d3d3"), title: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Gray1): existingPlot.Style( figBg: ColorTranslator.FromHtml("#31363a"), dataBg: ColorTranslator.FromHtml("#3a4149"), grid: ColorTranslator.FromHtml("#444b52"), tick: ColorTranslator.FromHtml("#757a80"), label: ColorTranslator.FromHtml("#d6d7d8"), title: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Gray2): existingPlot.Style( figBg: ColorTranslator.FromHtml("#131519"), dataBg: ColorTranslator.FromHtml("#262626"), grid: ColorTranslator.FromHtml("#2d2d2d"), tick: ColorTranslator.FromHtml("#757575"), label: ColorTranslator.FromHtml("#b9b9ba"), title: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Light1): existingPlot.Style( figBg: ColorTranslator.FromHtml("#FFFFFF"), dataBg: ColorTranslator.FromHtml("#FFFFFF"), grid: ColorTranslator.FromHtml("#ededed "), tick: ColorTranslator.FromHtml("#7f7f7f"), label: ColorTranslator.FromHtml("#000000"), title: ColorTranslator.FromHtml("#000000") ); break; case (Style.Light2): existingPlot.Style( figBg: ColorTranslator.FromHtml("#e4e6ec"), dataBg: ColorTranslator.FromHtml("#f1f3f7"), grid: ColorTranslator.FromHtml("#e5e7ea"), tick: ColorTranslator.FromHtml("#77787b"), label: ColorTranslator.FromHtml("#000000"), title: ColorTranslator.FromHtml("#000000") ); break; case (Style.Control): existingPlot.Style( figBg: SystemColors.Control, dataBg: Color.White, grid: Color.LightGray, tick: Color.Black, label: Color.Black, title: Color.Black ); break; default: existingPlot.Style( figBg: Color.White, dataBg: Color.White, grid: Color.LightGray, tick: Color.Black, label: Color.Black, title: Color.Black ); break; } }
public static void SetStyle(Plot existingPlot, Style style) { // TODO: this system really needs refactoring... switch (style) { case (Style.Black): existingPlot.Style( figureBackground: Color.Black, dataBackground: Color.Black, grid: ColorTranslator.FromHtml("#2d2d2d"), tick: ColorTranslator.FromHtml("#757575"), axisLabel: ColorTranslator.FromHtml("#b9b9ba"), titleLabel: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Blue1): existingPlot.Style( figureBackground: ColorTranslator.FromHtml("#07263b"), dataBackground: ColorTranslator.FromHtml("#0b3049"), grid: ColorTranslator.FromHtml("#0e3d54"), tick: ColorTranslator.FromHtml("#145665"), axisLabel: ColorTranslator.FromHtml("#b5bec5"), titleLabel: ColorTranslator.FromHtml("#d0dae2") ); break; case (Style.Blue2): existingPlot.Style( figureBackground: ColorTranslator.FromHtml("#1b2138"), dataBackground: ColorTranslator.FromHtml("#252c48"), grid: ColorTranslator.FromHtml("#2c334e"), tick: ColorTranslator.FromHtml("#bbbdc4"), axisLabel: ColorTranslator.FromHtml("#bbbdc4"), titleLabel: ColorTranslator.FromHtml("#d8dbe3") ); break; case (Style.Blue3): existingPlot.Style( figureBackground: ColorTranslator.FromHtml("#001021"), dataBackground: ColorTranslator.FromHtml("#021d38"), grid: ColorTranslator.FromHtml("#273c51"), tick: ColorTranslator.FromHtml("#d3d3d3"), axisLabel: ColorTranslator.FromHtml("#d3d3d3"), titleLabel: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Gray1): existingPlot.Style( figureBackground: ColorTranslator.FromHtml("#31363a"), dataBackground: ColorTranslator.FromHtml("#3a4149"), grid: ColorTranslator.FromHtml("#444b52"), tick: ColorTranslator.FromHtml("#757a80"), axisLabel: ColorTranslator.FromHtml("#d6d7d8"), titleLabel: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Gray2): existingPlot.Style( figureBackground: ColorTranslator.FromHtml("#131519"), dataBackground: ColorTranslator.FromHtml("#262626"), grid: ColorTranslator.FromHtml("#2d2d2d"), tick: ColorTranslator.FromHtml("#757575"), axisLabel: ColorTranslator.FromHtml("#b9b9ba"), titleLabel: ColorTranslator.FromHtml("#FFFFFF") ); break; case (Style.Light1): existingPlot.Style( figureBackground: ColorTranslator.FromHtml("#FFFFFF"), dataBackground: ColorTranslator.FromHtml("#FFFFFF"), grid: ColorTranslator.FromHtml("#ededed "), tick: ColorTranslator.FromHtml("#7f7f7f"), axisLabel: ColorTranslator.FromHtml("#000000"), titleLabel: ColorTranslator.FromHtml("#000000") ); break; case (Style.Light2): existingPlot.Style( figureBackground: ColorTranslator.FromHtml("#e4e6ec"), dataBackground: ColorTranslator.FromHtml("#f1f3f7"), grid: ColorTranslator.FromHtml("#e5e7ea"), tick: ColorTranslator.FromHtml("#77787b"), axisLabel: ColorTranslator.FromHtml("#000000"), titleLabel: ColorTranslator.FromHtml("#000000") ); break; case (Style.Control): existingPlot.Style( figureBackground: SystemColors.Control, dataBackground: Color.White, grid: ColorTranslator.FromHtml("#efefef"), tick: Color.Black, axisLabel: Color.Black, titleLabel: Color.Black ); break; case (Style.Seaborn): existingPlot.Style( figureBackground: Color.White, dataBackground: ColorTranslator.FromHtml("#eaeaf2"), grid: Color.White, tick: ColorTranslator.FromHtml("#AAAAAA"), axisLabel: Color.Black, titleLabel: Color.Black ); break; default: existingPlot.Style( figureBackground: Color.White, dataBackground: Color.White, grid: ColorTranslator.FromHtml("#efefef"), tick: Color.Black, axisLabel: Color.Black, titleLabel: Color.Black ); break; } }
public static string chart(string pair) { List <string> pena = new List <string>(); System.Net.WebClient wc1 = new System.Net.WebClient(); int sum_chart = 150; double last_price = 0; String link_Response = wc1.DownloadString("https://www.binance.com/api/v1/klines?symbol=" + pair + "&interval=15m&limit=" + sum_chart); MatchCollection matchList = System.Text.RegularExpressions.Regex.Matches(link_Response, @"(\d+.\d+)|\d+\d+|\d"); pena = matchList.Cast <Match>().Select(match => match.Value).ToList(); System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); int count = 0; int count_draw = 0; //Оишбка в апи hbc в конце несколкьо нулей 0 0 0 0 0 //введен костыль-переменная ScottPlot.OHLC[] ohlcs = new ScottPlot.OHLC[sum_chart]; var plt = new ScottPlot.Plot(800, 400); for (int i = 0; i < sum_chart; i++) { double Open = Convert.ToDouble(pena[count_draw + 1]); double High = Convert.ToDouble(pena[count_draw + 2]); double Low = Convert.ToDouble(pena[count_draw + 3]); double Close = Convert.ToDouble(pena[count_draw + 4]); double Opentime = ((Convert.ToDouble(pena[count_draw])) / 1000) + (3600 * 3); ohlcs[count] = new ScottPlot.OHLC(Open, High, Low, Close, ConvertFromUnixTimestamp(Opentime), 1); count_draw = count_draw + 12; count++; last_price = Close; } plt.Title("15 Minute Chart"); plt.YLabel("Stock Price (" + pair + ")"); plt.Ticks(dateTimeX: true, dateTimeFormatStringX: "HH:mm:ss", numericFormatStringY: "n"); plt.PlotCandlestick(ohlcs); plt.Style(tick: Color.White, label: Color.White, title: Color.White, dataBg: Color.FromArgb(255, 36, 43, 60), grid: Color.FromArgb(255, 36, 43, 60), figBg: Color.FromArgb(255, 36, 43, 60)); DateTime date1 = new DateTime(); date1 = DateTime.Now; string name = "PlotTypes" + pair + "№" + date1.Ticks + ".png"; string name_file = name; string label_name = Convert.ToString(last_price); plt.PlotHLine(y: last_price, color: Color.Green, lineWidth: 0.5, label: label_name); plt.Legend(backColor: Color.FromArgb(255, 36, 43, 60), location: legendLocation.upperCenter); plt.SaveFig(name_file); return(name_file); }