我正在尝试在机器人中创建一些图表(折线图等)。我有来自在线资源(finance.Yahoo.com)的数据
我不确定我应该为此目的使用什么库
1.什么图表库?
2.我应该使用什么类型的卡(英雄卡,自适应卡......)?
3.我目前连接到外部站点(Yahoo)的解决方案是web api,我使用的是C#bot框架?
有谁可以分享一个如何实现这个目标的例子?
我曾尝试使用UI.Visualization.Chart库,但我没有成功获得解决方案。因此,我正在寻找这个领域的一些帮助
答案 0 :(得分:2)
BotFramework目前不支持交互式图表,您可以使用某些第三方库作为@Peter Bons建议或在线服务来生成图表,但您需要尝试将其渲染为图像文件并附加在bot中使用HeroCard
/ AdaptiveCard
将此文件添加到您的邮件中。
由于您的数据位于finance.Yahoo.com,我不确定Yahoo是否支持生成图表图像,否则,您需要从Yahoo获取数据,然后尝试查找在线服务或第三方lib首先绘制图表图像。
渲染图像后,您可以将其作为图像附件发送 例如:
[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;
}
}