将int值转换为梯度中的颜色
我的int值范围从-148到10,我正在尝试将此值映射到以下渐变中的颜色: 黑色(-148) 蓝色 青色 绿色 黄色 橙色 红色 白色(10) 视觉上,我的颜色梯度看起来像这样: 我的第一个想法是将范围(-148至10)分为与这八种颜色相对应的较小组,但显然会导致多个值转化为相同颜色.我想利用此渐变中的更多甚至所有颜色,但我不确定该如何做.谁能提供一些建议?对于它的价值,我在C#/.网络工作,所以我需要将我的int转换为RGB值. 解决方案 您是说这样的映射函数吗? (颜色列表中的透明条目是值10的假人,其中color1从列表的第9个条目中获取) Color[] colors = new Color[] { Colors.Black, Colors.Blue, Colors.Cyan, Colors.Green, Colors.Yellow, Colors.Orange, Colors.Red, Colors.White, Color
2 2024-04-23
编程技术问答社区
16位灰度图像转为热图
我正在为我的大学制作科学成像软件,并且遇到了一个主要问题.我实验室的科学摄像机(Apogee Alta U57)提供图像为16BPP阵列 - 每个像素为0-65535值!我们希望保持此范围,但实际上我们无法在Monitor(0-255灰度范围)上显示它们.因此,我找到了一种解决此问题的方法 - 仅利用颜色,并将整个图像显示为热图(从黑色,蓝色,到绿色和红色,到纯白色). 我的意思是这样的东西 - 我唯一的问题是:如何有效地转换16BPP的像素值以完成C#中的热图位图?有什么图书馆可以这样做吗?如果没有,我该如何使用.NET资源来实现这一目标? 我的想法是创建函数,将65536值映射到(255 R,255G,255B)中,但这是一项艰巨的工作 - 尤其是不使用HSV模型. 我有义务提供任何帮助! 解决方案 您的问题由几个部分组成: 在16位像素数据值中读取 将它们映射到24位RGB颜色 将它们写入图像文件 我会跳过第一部分和第三部分,并给您一
8 2024-04-23
编程技术问答社区
计算热力图的颜色
我正在制作由HTML表组成的热图.该表包含 n 细胞,具有最低值和A 最高值(最高始终高于最低).每个单元都有单元格值.所有这些值是ints. 最低值的细胞是浅蓝色的,缩放到最高值的细胞为深红色的点.有关理想范围,请参见下面的梯度: 要计算每个单个单元的十六进制颜色值,我查看表中的最低和最高值,以及单元的 total 值,将它们传递到返回RGB十六进制的方法中,准备与HTML的 background-color 样式一起使用. 这是到目前为止的方法: public string ConvertTotalToRgb(int low, int high, int cell) { int range = high - low; int main = 255 * cell/ range; string hexR = main.ToString("X2"); int flip = 255 * (1 - (cell/ range));
14 2024-04-19
编程技术问答社区
在C#中从List<List<T>在DataGridView中显示HeatMap
我在touples列表列表中有一些数据.我的任务是从中制作热图. 作为C#的新手,我已经搜索了网络,并通过在DataGridView中绘制元素找到了一种解决此任务的方法,但是我不明白,该如何做. 所以,我有一份touple列表: using SpikeDataPacket = List>; 这是我在网格中加载数据的方式: public HeatForm(List list) { SpikeList = list; InitializeComponent(); var bindstim = new BindingList(SpikeList); var stimsource = new BindingSource(bindstim, null); heatMap.DataSource = stimsource; } 但这在数据杂志上显示了
16 2024-04-12
编程技术问答社区
如何在Bokeh热图中删除/添加行并保持行高?
我已经制作了一个与CheckboxGroup链接的散景热图,因此CheckboxGroup中的活动项目对应于Heatmap中显示的行.即,在CheckboxGroup中检查/取消选中的框,在热图中添加或删除行.一切都很好,除了我希望热图的行保持相同的高度,无论热图中有多少行.实际发生的是保留热图的原始高度,并且行调整大小以适合原始高度. 我在这里有一个MWE: from bokeh.io import output_file, show from bokeh.models import ColorBar, ColumnDataSource, LinearColorMapper from bokeh.plotting import figure from bokeh.transform import transform from bokeh.layouts import row, widgetbox
8 2024-04-01
编程技术问答社区
如何在bokeh/holoviews热图中正确处理数据时间和分类轴?
我正在尝试使用散景/全能图绘制一个简单的热图.我的数据(pandas dataframe)具有分类(在y)和dateTime(x上).问题在于,分类元素的数量> 3000,并且所得图出现在Y轴上混乱的重叠式脚架,这使其完全毫无用处.目前,是否有可靠的散景方式仅根据Zoom级别选择股票的子集? 我已经尝试了绘图,结果看起来很完美,但是我需要使用散景/holoviews和dataShader.我还想避免用数值脚步代替分类. 我还尝试过此解决方案实际上它不起作用(bokeh 1.2.0). 这是代表我用例的玩具示例(实际上在这里#y是1000,但给出了这个想法) from datetime import datetime import pandas as pd import numpy as np from bokeh.plotting import figure, show from bokeh.transform import linear_cmap from bo
6 2024-04-01
编程技术问答社区
虚化热图的使用
我有一系列带有时间戳的事件,想创建一个热图: x轴应表示日期F.E. '2016-02-03', y轴应代表发生的小时,F.E. 13(如果13:32), 颜色应取决于发生的事件的数量. 我的数据(作为pandas dataframe z.head()): date hour i 0 2016-01-15 13 1 1 2016-01-15 13 1 2 2016-01-15 12 1 3 2016-01-15 10 1 4 2016-01-15 10 1 我的尝试失败: from bokeh._legacy_charts import HeatMap, output_file, show hm = HeatMap(z.head(), x='date', y='hour', values='i', stat='count') 和例外: AttributeError
6 2024-04-01
编程技术问答社区
改变Holoviews热图中的刻度线标记期
我有以下由Holoviews制作的热图.我需要更改x tick以更改x tick的时期. [0,2,4,...]而不是[0,1,2,3,4,..] data = [(i, j, i*j) for i in range(10) for j in range(10)] hv.HeatMap(data) 解决方案 带有 holoviews> = 1.13 ,您现在可以使用关键字.opts(xticks)和.opts(yticks)进行连续(非类别)范围. 示例: data = [(i, j, i*j) for i in range(10) for j in range(10)] hv.HeatMap(data).opts(xticks=[0, 3, 6, 9], yticks=[0, 5, 9]) 结果图: 其他解决方案 似乎Bokeh没有提供此类功能.但是,您可以更改 xaxis.formatter绘制图. 运行以下单元格之后: from
2 2024-04-01
编程技术问答社区
python bokeh,如何制作相关图?
如何在散景中进行相关热图? import pandas as pd import bokeh.charts df = pd.util.testing.makeTimeDataFrame(1000) c = df.corr() p = bokeh.charts.HeatMap(c) # not right # try to make it a long form # (and it's ugly in pandas to use 'index' in melt) c['x'] = c.index c = pd.melt(c, 'x', ['A','B','C','D']) # this shows the right 4x4 matrix, but values are still wrong p = bokeh.charts.HeatMap(c, x = 'x', y = 'variable', values = 'value') 顺便说一句,我可以在侧面做一个配色
10 2024-04-01
编程技术问答社区
我可以为虚化热图绘制一个色条吗?
Bokeh是否有一种简单的方法来绘制热图的配色栏? 在此示例中说明颜色如何与值相对应. 在Matlab中,它称为"配色栏",看起来像这样: 解决方案 更新:现在是 更轻松:请参阅 http://docs.bokeh.org/en/latest/docs/user_guide/annotations.html#color-bars 恐怕我没有很好的答案,这在散景中应该更容易.但是我之前已经手动做过这样的事情. 因为我经常想要这些情节,所以我做了一个新的情节,然后将其与hplot或gridplot>. 之类的东西组装在一起 这里有一个示例: httpspps ://github.com/birdsarah/pycon_2015_bokeh_talk/blob/master/washmap/washmap/washmap/water_map.py#l179 在您的情况下,情节应该非常直截了当.如果您制作了这样的数据: | value | c
8 2024-04-01
编程技术问答社区
如何正确地用Bokeh创建一个HeatMap
我正在尝试复制这个问题matplotlib.不过,我不能完全正确.现有的示例并没有帮助我理解我在做错了什么.我谦虚的尝试 from bokeh.io import output_notebook; output_notebook() from bokeh.charts import HeatMap, show from bokeh.palettes import RdYlGn6 import pandas as pd import numpy as np nba = pd.read_csv(urlopen("http://datasets.flowingdata.com/ppg2008.csv"), index_col=0) # Normalize the data columns and sort. nba = (nba - nba.mean()) / (nba.max() - nba.min()) nba.sort('PTS', inplace=True) score =
8 2024-04-01
编程技术问答社区
旋转ggplot瓦片热图的上三角区域
我绘制了这样的热图: ggplot(test, aes(start1, start2)) + geom_tile(aes(fill = logFC), colour = "gray", size=0.05) + scale_fill_gradientn(colours=c("#0000FF","white","#FF0000"), na.value="#DAD7D3") 这绘制了热图的上三角形.我想绘制的是相同的三角形,但是将hypotenuse作为x-axis. 我该怎么做? 编辑:添加了可重复的示例 library(ggplot2) # dummy data df1
14 2024-03-31
编程技术问答社区
R: 使用R中的latticeExtra云来调整3DBarplot的颜色梯度
我正在尝试更改3D棒图的颜色,以使颜色从绿色,黄色,橙色,红色,红色,深红色.但是,每当我绘制它时,看起来颜色在绿色后开始重复.有什么东西,我可以解决这个问题吗?我得到的输出是: 我想要的输出是: 这是我正在使用的代码.它给了我第一张照片.那不是想要的.我希望颜色看起来像它们在第二张图片中的外观. library(latticeExtra) myPalette
12 2024-03-27
编程技术问答社区
当把柱状图和热图结合起来时,如何对齐yticklabels?
我有类似的问题,例如这个问题 ;我正在尝试将三个图组合在海洋中,但是我的Y轴上的标签与条没有对齐. 我的代码(现在是工作复制示例): import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from matplotlib.colors import LogNorm ### Generate example data np.random.seed(123) year = [2018, 2019, 2020, 2021] task = [x + 2 for x in range(18)] student = [x for x in range(200)] amount = [x + 10 for x in range(90)] violation = [letter for letter in "thisisjustsampletextforlabe
6 2024-03-27
编程技术问答社区
matplotlib相关矩阵热图,用分组的颜色作为标签
我有一个相关矩阵帽,我试图用matplotlib可视化.我可以创建一个很好的热图样式图,但是我遇到了想要标签的问题.我什至不确定这是否可以,但这是我要做的事情,似乎无法使它起作用: 我的相关矩阵是150 x 150.在颜色背景上的标签. 要澄清,假设我想将1-15作为"组1",或者只是蓝色条,或者是蓝色条上的"第1组"文本.然后在红色棒上或简单的红色条上为16-20作为"组2".等,通过矩阵中的所有项目. 我在分组轴标签上都失败了,并在其上获得了任何颜色.任何帮助将不胜感激.我的代码在下面,尽管它是基本的,但我不知道它是否会有所帮助. import matplotlib.pyplot as plt import matplotlib.cm as cm import numpy as np # COREELATION MATRIX TEST # corr = np.genfromtxt(csv_path,delimiter=',') fig = plt.figur
12 2024-03-23
编程技术问答社区
重叠的yticklabels。是否可以在seaborn中控制热图的单元尺寸?
我有一个大约200个观测值的数据集,我想将其绘制为热图.每个观察结果都有一个与之关联的字符串,我想显示.我的问题是我无法阅读这些标签,因为它们相互重叠.因此,我的问题是,是否可以以某种方式将热图的单元格大小设置为yticklabel的字体大小,或者是否还有其他解决方法. 在下面的示例中,我使用随机数据进行说明目的: import seaborn as sns import numpy as np data = np.random.rand(200, 10) ax = sns.heatmap(data) for item in ax.get_yticklabels(): item.set_rotation(0) 给我: 有没有办法使这些yticklabels可读?在理想的情况下,我将有一个选项,可以使我可以将单元格的高度设置为yticklabels的字体大小.这可能吗? 编辑: 如评论中所述,一种可能性是增加数字的大小.我尝试了如下: imp
10 2024-03-23
编程技术问答社区