首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建在Python中每个变量的值之间存在空白的堆叠条形图

如何创建在Python中每个变量的值之间存在空白的堆叠条形图
EN

Data Science用户
提问于 2019-05-31 07:34:15
回答 1查看 397关注 0票数 1

我在用Python创建一个堆叠条形图时遇到了问题。我有3个变量的数据如下:

A=[3,5,7] B=[4,5,7] C=[2,3,4,5,6,7]

我希望创建一个条形图,其中包含每个变量的值之间的间隙,如下所示:

有人知道如何用Python创建它吗?非常感谢。

EN

回答 1

Data Science用户

回答已采纳

发布于 2019-06-02 13:43:34

您可以将Wolfram语言应用于项目。为开发人员提供了一个免费的Wolfram发动机,通过用于Python的Wolfram客户端库,您可以在C2中使用这些函数。

代码语言:javascript
复制
from wolframclient.evaluation import WolframLanguageSession
from wolframclient.language import wl, wlexpr

开始治疗。

代码语言:javascript
复制
wolfSession = WolframLanguageSession();
A=[3,5,7];
B=[4,5,7];
C=[2,3,4,5,6,7];

可以应用ArrayPlotMatrixPlot函数。这些函数采用2D矩阵,因此首先需要转换列表。

使用SparseArray,可以在不显式设置所有职位的值的情况下指定矩阵。空位置设置为下面的''

代码语言:javascript
复制
pos=wolfSession.evaluate(
    wl.Flatten(
        wl.MapIndexed(
            wl.Function(wl.Rule([wl.First(wl.Slot(2)), wl.Slot(1)], wl.First(wl.Slot(2)))),
            [A,B,C],
            [2]
        ),
        1
    )
);
sparse = wolfSession.evaluate(wl.SparseArray(pos, wl.Automatic, ''));

print(wolfSession.evaluate(wl.Normal(sparse)))

[,]

使用自定义ColorRulesFrameTicks获取您的情节的基本表示形式。您可以使用这些选项和许多其他选项来使您的精确外观。

代码语言:javascript
复制
stacked=wolfSession.evaluate(
    wl.ArrayPlot(
        sparse,
        AspectRatio = 1/4,
        ColorRules = wl.Flatten(
            [wl.Thread(wl.Rule(wl.Range(3),[wl.Green,wl.Orange,wl.Blue])),
            wl.Rule(wl.Blank(),wl.White)]
        ),
        FrameTicks = [
            [wl.Thread([range(1,4), ['A','B','C']]), wlexpr('None')],
            [
                wl.Thread([ 
                    wl.Range(7), 
                    list(map(lambda r: str(r)+'k', range(1,8)))
                ]), 
                wlexpr('None')
            ]
        ]
    )
);

然后在一个受支持的光栅图像格式矢量图形格式中使用C17

代码语言:javascript
复制
wolfSession.evaluate(
    wl.Export(
        '', 
        stacked
    )
)

终止会话

代码语言:javascript
复制
wolfSession.terminate()

希望这能有所帮助。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/52956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档