哪位大神精通zedgraph控件如何绘制散点图,但每个点的不同颜色

Reddragon2010 2017-05-22 11:15:31
想通过zedgraph控件形成频谱瀑布图
...全文
414 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyj5550422 2017-12-19
  • 打赏
  • 举报
回复
请问楼主,如何解决,能不能提供点好的建议?我实在没找到合适的方法,只能自己写代码,不知道有没有好的控件实例可以借鉴?
Tony_Xian 2017-05-22
  • 打赏
  • 举报
回复
太难了,爱莫能助
bloodish 2017-05-22
  • 打赏
  • 举报
回复
建立一个笔刷和矩形集合的对应关系,按256种颜色计算,不可能超过256种笔刷。 多个矩形可以一次性通过Graphics.FillRectangles进行填色,再多也不超过256次绘制 用ZedGraph可以实现,一般的信号处理系统软件里都有瀑布图的实现,但不会是开源的。 你也可以上github找找试试
Reddragon2010 2017-05-22
  • 打赏
  • 举报
回复
横坐标是频率,纵坐标是时间,平面上每个点的颜色表征该时刻该频率的能量大小 整个二维图从上至下滚动
Reddragon2010 2017-05-22
  • 打赏
  • 举报
回复
再发个同类的产品图片
Reddragon2010 2017-05-22
  • 打赏
  • 举报
回复
引用 楼主 Reddragon2010 的回复:
想通过zedgraph控件形成频谱瀑布图
引用 1 楼 bloodish 的回复:
画ColorMap(阶次谱阵)挺复杂的,一两句话很难解释清楚,大概的思路可以告诉你 1,这个不是画点,而是画矩形,颜色填充的矩形,这样才能保证不出现背景空白色 2,要有一张颜色表(Color Table),如果是RGB颜色通道,按0~255给出256个候选的颜色 3,每个要绘制的点的Y值,按Y轴的最大最小值,计算出颜色表中的索引值,如果Y轴是log方式显示,要先进行线性化处理 4,矩形根据前后两点的频率确定宽度,高度只需要Y轴的显示范围除以颜色数来决定 5,根据每个矩形的颜色新建一个笔刷,当然可能有很多矩形使用相同颜色的笔刷,你可以用字典进行KV的存储(笔刷-->矩形集合) 6,根据字典中的笔刷和矩形的对应关系进行绘制
请问直接用笔刷画吗?这个瀑布图的数据量很大,有没有什么工具或控件可以实现?
bloodish 2017-05-22
  • 打赏
  • 举报
回复
画ColorMap(阶次谱阵)挺复杂的,一两句话很难解释清楚,大概的思路可以告诉你 1,这个不是画点,而是画矩形,颜色填充的矩形,这样才能保证不出现背景空白色 2,要有一张颜色表(Color Table),如果是RGB颜色通道,按0~255给出256个候选的颜色 3,每个要绘制的点的Y值,按Y轴的最大最小值,计算出颜色表中的索引值,如果Y轴是log方式显示,要先进行线性化处理 4,矩形根据前后两点的频率确定宽度,高度只需要Y轴的显示范围除以颜色数来决定 5,根据每个矩形的颜色新建一个笔刷,当然可能有很多矩形使用相同颜色的笔刷,你可以用字典进行KV的存储(笔刷-->矩形集合) 6,根据字典中的笔刷和矩形的对应关系进行绘制

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧