3

我想用PyXpython中的包制作密度图。

我使用代码

 from pyx import *
 import numpy
 import math 
 from pyx.graph import axis

 g = graph.graphxy(height=8, width=8,
              x=graph.axis.linear(min=0.0, max=2.0, title=r"$x-axis$"),
              y=graph.axis.linear(min=0.0, max=2.0, title=r'$y-axis$'))

              
 g.plot(graph.data.file("datatotest.dat", xmin=1, xmax=2, ymin=3, ymax=4, color=5, title=r"$bar$"),
    [graph.style.rect(gradient=color.gradient.Gray)]
        )

 g.writePDFfile()

我使用数据

 0  1   0   1   0.12
 0  1   1   2   0.56
 1  2   0   1   0.98
 1  2   1   2   0.23

我得到了结果

在此处输入图像描述

我想要更多有趣的颜色。

但是使用color.gradient.Rainbow给出了错误消息:

“颜色空间字符串不适用于 hsb 颜色”

.

color.gradient.Hue.例如,我在使用 Reverse 时遇到类似的错误。

问题:除了灰色之外,还有什么其他颜色渐变在这里起作用?

4

2 回答 2

2

问题是由于右侧的梯度和此处使用位图进行优化以实现良好压缩。不幸的是,位图不适用于 HSB 颜色。现在,解决方案相当简单,因为也有彩虹(和其他渐变)转换为不同的颜色空间。在您的情况下,您可以使用 color.rgbgradient.Rainbow 或 color.cmykgradient.Rainbow 等,具体取决于您希望在输出中拥有的色彩空间。

于 2020-09-12T14:42:26.880 回答
1

我曾经做过类似的事情。我为数据与 seaborn.heatmap 的某些相关性创建了一个热图,您应该尝试一下。 https://seaborn.pydata.org/generated/seaborn.heatmap.html

于 2020-09-16T07:09:18.617 回答