2

我想将 x 轴移动到绘图的顶部并手动填充颜色。但是,ggplot 中的常用方法在 plotnine 中不起作用。当我提供时position='top',我scale_x_continuous()收到警告:PlotnineWarning: scale_x_continuous could not recognize parameter 'position'.我了解位置不在 plotnine 的 scale_x_continuous 中,但替代品是什么?此外,还会scale_fill_manual()导致Invalid RGBA argument: 'color'错误。具体来说,value需要一个类似数组的对象。因此,我提供了颜色数组,但仍然有问题。如何手动设置 scale_fill 对象的颜色?

import pandas as pd
from plotnine import *
lst = [[1,1,'a'],[2,2,'a'],[3,3,'a'],[4,4,'b'],[5,5,'b']]
df = pd.DataFrame(lst, columns =['xx', 'yy','lbls']) 

fill_clrs = {'a': 'goldenrod1',
 'b': 'darkslategray3'}
ggplot()+\
  geom_tile(aes(x='xx', y='yy', fill = 'lbls'), df) +\
  geom_text(aes(x='xx', y='yy', label='lbls'),df, color='white')+\
  scale_x_continuous(expand=(0,0), position = "top")+\
   scale_fill_manual(values = np.array(list(fill_clrs.values())))
4

1 回答 1

3

Plotnine 不支持更改任何轴的位置。

如果它们是可识别的颜色名称,您可以传递一个list或一个dict颜色值。scale_fill_manual您拥有的颜色模糊不清,无法识别。要查看它是否有效,请尝试使用“红色”和“绿色”,请参阅https://matplotlib.org/gallery/color/named_colors.html了解所有命名颜色。否则,您也可以使用十六进制颜色,例如#ff00cc。

于 2020-06-02T21:17:09.990 回答