首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用c#机器人框架创建图表?

如何使用c#机器人框架创建图表?
EN

Stack Overflow用户
提问于 2017-12-04 01:01:05
回答 1查看 1.1K关注 0票数 1

我正在尝试在机器人中创建一些图表(折线图等)。我有可从在线来源(finance.Yahoo.com)获得的数据

我不确定我应该使用哪个库来实现此目的

  1. 什么图表库?
  2. 什么类型的卡(英雄卡、自适应卡...)我应该使用吗?
  3. 我当前连接到外部站点(雅虎)的解决方案是web api,而我使用的是C#机器人框架?

有没有人可以分享一个我如何实现这一目标的例子?

我尝试过使用UI.Visualization.Chart库,但是我没有成功地得到解决方案。因此,我在这方面寻求一些帮助

EN

回答 1

Stack Overflow用户

发布于 2017-12-04 13:44:38

BotFramework目前不支持交互式图表,您可以使用@Peter Bons建议的一些第三方库或在线服务来生成图表,但您需要尝试将其呈现为图像文件,并使用bot中的HeroCard/ AdaptiveCard将此文件附加到您的消息中。

由于您的数据是在finance.Yahoo.com中,我不确定雅虎是否支持生成图表图像,如果不是,您将需要从雅虎获取数据,然后尝试找到在线服务或第三方库来绘制图表图像。

渲染图像后,您可以将其作为图像附件发送,例如:

代码语言:javascript
复制
[Serializable]
public class RootDialog : IDialog<object>
{
    public Task StartAsync(IDialogContext context)
    {
        context.Wait(MessageReceivedAsync);

        return Task.CompletedTask;
    }

    private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
    {
        var activity = await result as Activity;

        var card = CreateHeroCard();
        Attachment attachment = card.ToAttachment();
        var message = context.MakeMessage();
        message.Attachments.Add(attachment);

        await context.PostAsync(message);

        context.Wait(MessageReceivedAsync);
    }

    private HeroCard CreateHeroCard()
    {
        List<CardImage> cardImages = new List<CardImage>();
        cardImages.Add(new CardImage("your chart image url goes here"));
        var card = new HeroCard()
        {
            Title = "Months with Numbers Bar Chart",
            Subtitle = "Using a Chart as Image service...",
            Text = "Build and connect intelligent bots that have charts rendered as images.",
            Images = cardImages
        };

        return card;
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47620871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档