Plotnine的填充比例尺和轴位置

3
我想将x轴移动到图表的顶部,并手动填充颜色。然而,在plotnine中,ggplot中通常的方法不起作用。当我在我的scale_x_continuous()函数中提供position='top'参数时,会收到警告:PlotnineWarning: scale_x_continuous无法识别position参数。我知道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())))
1个回答

4

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

您可以将颜色值的listdict传递给scale_fill_manual,前提是它们是可识别的颜色名称。 您所拥有的颜色很模糊,并且无法被识别。要查看它是否有效,请尝试'red'和'green',请参见https://matplotlib.org/gallery/color/named_colors.html以获取所有命名颜色。否则,您也可以使用十六进制颜色,例如#ff00cc。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接