为了账号安全,请及时绑定邮箱和手机立即绑定

绘制所选股票图表的python脚本

绘制所选股票图表的python脚本

一只名叫tom的猫 2023-05-09 15:57:23
如前所述,示例应用程序使用 SQLite 数据库作为其数据存储(也可由 Python 端访问 - 见下文)。为此,使用了实体框架,以及在这篇 Codeproject 文章中找到的方法。然后将股票数据放入支持过滤和排序的 ListCollectionView 中:private void LoadStocks(){var ctx = new SQLiteDatabaseContext(_mainVm.DbPath);var itemList = ctx.Stocks.ToList().Select(s => new StockItem(s)).ToList();_stocks = new ObservableCollection<StockItem>(itemList);_collectionView = new ListCollectionView(_stocks);// Initially sort the list by stock namesICollectionView view = CollectionViewSource.GetDefaultView(_collectionView);view.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));}获取文本输出 在这里,PythonRunner 正在调用生成文本输出的脚本。KMeansClusteringScript 属性指向要执行的脚本:private async Task<string> RunKMeans(){TreeViewText = Processing;Items.Clear();try{    string output = await _mainVm.PythonRunner.ExecuteAsync(        KMeansClusteringScript,        _mainVm.DbPath,        _mainVm.TickerList,        _mainVm.NumClusters,        _mainVm.StartDate.ToString("yyyy-MM-dd"),        _mainVm.EndDate.ToString("yyyy-MM-dd"));    return output;}catch (Exception e){    TreeViewText = e.ToString();    return string.Empty;}}这是脚本产生的一些示例输出:  0 AYR 0,0,255  0 PCCWY 0,100,0  0 HSNGY 128,128,128  0 CRHKY 165,42,42  0 IBN 128,128,0  1 SRNN 199,21,133   ...  4 PNBK 139,0,0  5 BOTJ 255,165,0  5 SPPJY 47,79,79第一列是 k-Means 分析的聚类编号,第二列是相应股票的股票代码,第三列表示用于在图表中绘制该股票线条的颜色的 RGB 值。Getting an Image这是使用视图模型的 PythonRunner 实例异步调用所需 Python 脚本(其路径存储在 DrawSummaryLineChartScript 属性中)以及所需脚本参数的方法。结果一旦可用,就会被处理成“WPF 友好”形式:internal async Task<bool> DrawChart(){SummaryChartText = Processing;SummaryChart = null;try{        SummaryChart = Imaging.CreateBitmapSourceFromHBitmap(        bitmap.GetHbitmap(),        IntPtr.Zero,        Int32Rect.Empty,        BitmapSizeOptions.FromEmptyOptions());    return true;}catch (Exception e){    SummaryChartText = e.ToString();    return false;} }但这种方法不能正常工作?我做什么 ?
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

调用python脚本绘制所选股票的图表。


internal async Task<bool> DrawChart()

 {

   SummaryChartText = Processing;

    SummaryChart = null;


try

{

    var bitmap = await _mainVm.PythonRunner.GetImageAsync(

        DrawSummaryLineChartScript,

        _mainVm.DbPath,

        _mainVm.TickerList,

        _mainVm.StartDate.ToString("yyyy-MM-dd"),

        _mainVm.EndDate.ToString("yyyy-MM-dd"));


    SummaryChart = Imaging.CreateBitmapSourceFromHBitmap(

        bitmap.GetHbitmap(),

        IntPtr.Zero,

        Int32Rect.Empty,

        BitmapSizeOptions.FromEmptyOptions());


    return true;

}

catch (Exception e)

{

    SummaryChartText = e.ToString();

    return false;

}

}


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信