假设我有下面的3x3矩阵:
[苹果19 3.5]
[橙子07 2.2]
[葡萄23 7.8]
只有在现实生活中矩阵才有几十行,而不仅仅是三行。
我想创建一个X Y绘图,其中第二列是X坐标,第三列是Y坐标,单词本身(即第一列)是标记(因此没有点、线或任何其他符号)。
我还希望每个单词的字体大小由第二列决定(例如,在上面的示例中,这意味着使“grapes”的大小大约是“oranges”的三倍)。
最后,我想将单词按红到蓝的比例上色,对应于第三列,0=最深的红色,10=最深的蓝色。
在Python2.x中最好的方法是什么?我知道我可以使用matplotlib的“annotate”和“text”来做很多(如果不是全部的话)这些事情,但不知怎么的,这感觉像是一个解决方法。当然,肯定有一种方法可以将单词声明为标记(所以我不必将它们视为“注释”)?也许是matplotlib之外的东西?有人做过类似的事情吗?
由于您不想使用
annotate
或text
,下一个最好的方法是py.scatter
,它将接受一个标记例如
这种方法有几个问题
\textrm{}
使其不是斜体似乎会破坏matplotlib最好使用颜色映射,而不是简单地定义RGB颜色值。
当我四处寻找相同问题的解决方案时,我发现了一个看起来更干净的方法(或者至少在精神上更接近最初的问题),即使用TextPath:
这种解决方案本身有一些优点和缺点:
代码:
如果有很多行/标记,通过简单的“文本”或“注释”循环执行上述操作将非常缓慢,而这可以更好地扩展。
相关问题 更多 >
编程相关推荐