小编sou*_*alo的帖子

堆叠+分组条形图

我正在尝试使用 python 中的plotly 创建一个条形图,它既是堆叠的又是分组的。
玩具示例(不同年份花费和赚取的钱):

import pandas as pd
import plotly.graph_objs as go

data = pd.DataFrame(
    dict(
        year=[2000,2010,2020],
        var1=[10,20,15],
        var2=[12,8,18],
        var3=[10,17,13],
        var4=[12,11,20],
    )
)

fig = go.Figure(
    data = [
        go.Bar(x=data['year'], y=data['var1'], offsetgroup=0, name='spent on fruit'),
        go.Bar(x=data['year'], y=data['var2'], offsetgroup=0, base=data['var1'], name='spent on toys'),
        go.Bar(x=data['year'], y=data['var3'], offsetgroup=1, name='earned from stocks'),
        go.Bar(x=data['year'], y=data['var4'], offsetgroup=1, base=data['var3'], name='earned from gambling'),
    ]
)
fig.show()   
Run Code Online (Sandbox Code Playgroud)

结果一开始看起来不错: 在此输入图像描述 但是看看当我关闭例如“花在水果上”时会发生什么: 在此输入图像描述 “花在玩具上”的痕迹仍然是浮动的,而不是从 0 开始。
这个问题可以修复吗?或者也许整个offsetgroup+base方法在这里不起作用。但我还能做什么呢?
谢谢!

更新:根据此 Github 问题,正在为未来的绘图版本开发堆叠、分组条形图,因此这可能不再是问题。

python bar-chart plotly plotly-python

9
推荐指数
2
解决办法
1万
查看次数

Python 3 - 在str.format()中使用元组

我正在尝试使用该str.format()方法,并且当我的值存储在元组中时遇到一些困难.例如,如果我这样做:

s = "x{}y{}z{}"
s.format(1,2,3)
Run Code Online (Sandbox Code Playgroud)

然后我明白了'x1y2z3'- 没问题.
但是,当我尝试:

s = "x{}y{}z{}"
tup = (1,2,3)
s.format(tup)
Run Code Online (Sandbox Code Playgroud)

我明白了

IndexError: tuple index out of range.
Run Code Online (Sandbox Code Playgroud)

那么如何将元组转换为单独的变量呢?或任何其他解决方法的想法?

python string tuples string-formatting

8
推荐指数
1
解决办法
6814
查看次数

在R中绘制半圆

我试图用R绘制半圆.我的最终目的是绘制一个圆圈,在中间用颜色划分.我发现的唯一方法是绘制两个不同颜色的半圆.
所以我创建了自己的函数:

upper.half.circle <- function(x,y,r,nsteps=100,...){  
  rs <- seq(0,pi,len=nsteps) 
  xc <- x+r*cos(rs) 
  yc <- y+r*sin(rs) 
  polygon(xc,yc,...) 
} 

lower.half.circle <- function(x,y,r,nsteps=100,...){ 
  rs <- seq(0,pi,len=nsteps) 
  xc <- x-r*cos(rs) 
  yc <- y-r*sin(rs) 
  polygon(xc,yc,...) 
} 
Run Code Online (Sandbox Code Playgroud)

但是,出于某种原因,我的半圈更像是半椭圆.例如,尝试运行:

plot(1, type="n",axes=F,xlab="", ylab="",xlim=c(0,200),ylim=c(0,200))
upper.half.circle(15,170,10,nsteps=1000,col='red')
Run Code Online (Sandbox Code Playgroud)

有谁知道我为什么遇到这个麻烦,或者知道一个更好的方法来做我想做的事情?
谢谢!

plot geometry r

7
推荐指数
1
解决办法
2906
查看次数

设置绘图区域的大小

让我们举一个简单的例子:

import plotly.express as px
x = ['A', 'B']
y = [10, 20]
fig = px.bar(x=x, y=y, color=x)
fig.update_layout(autosize=False, width=300, height=300, showlegend=True)
fig.show()
Run Code Online (Sandbox Code Playgroud)

结果 我将宽度和高度设置为相同的值,但得到的结果却截然不同。我知道这是因为轴刻度、标签和图例占用的空间。那么如何设置绘图区域的大小呢?假设我想要一个正方形图。我应该怎么办?
我尝试添加:

fig.update_yaxes(
    scaleanchor = "x",
    scaleratio = 1,
)
Run Code Online (Sandbox Code Playgroud)

但这并没有改变结果。有任何想法吗?

python figure plotly plotly-python

6
推荐指数
1
解决办法
3899
查看次数

Plotly - 如何制作没有盒子的箱线图?

我试图在 python 中使用plotly来创建箱线图,但我只想要点,而不是盒子、晶须或其他任何东西。像这样的东西: 在此输入图像描述

找不到办法做到这一点。我能做的最好的就是 set ,但这只显示框 之外的boxpoints='all'点:在此输入图像描述

这可能吗?有解决方法的想法吗?

python plotly plotly-python

5
推荐指数
1
解决办法
5742
查看次数

snakemake 集群脚本 ImportError snakemake.utils

我有一个奇怪的问题,它来来去去,我真的不知道什么时候以及为什么。
我正在运行这样的蛇形管道:

conda activate $myEnv    
snakemake -s $snakefile --configfile test.conf.yml --cluster "python $qsub_script" --latency-wait 60 --use-conda -p -j 10 --jobscript "$job_script"
Run Code Online (Sandbox Code Playgroud)

我在 conda 环境中安装了 snakemake 5.9.1(也尝试降级到 5.5.4)。
如果我只运行这个命令,这工作正常,但是当我将此命令 qsub 到我正在使用的 PBS 集群时,我收到一个错误。我的 qsub 脚本如下所示:

#PBS stuff...

source ~/.bashrc
hostname
conda activate PGC_de_novo

cd $workDir
snakefile="..."
qsub_script="pbs_qsub_snakemake_wrapper.py"
job_script="..."
snakemake -s $snakefile --configfile test.conf.yml --cluster "python $qsub_script" --latency-wait 60 --use-conda -p -j 10 --jobscript "$job_script" >out 2>err
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是:

...
Traceback (most recent call last):
  File "/path/to/pbs_qsub_snakemake_wrapper.py", line 6, in <module>
    from snakemake.utils …
Run Code Online (Sandbox Code Playgroud)

python hpc pbs conda snakemake

5
推荐指数
1
解决办法
555
查看次数

如何让 ipywidgets 在 HTML 中交互工作?

我有一个带有以下单元格的 Jupyter 笔记本:

from ipywidgets import widgets, interact
slider = widgets.IntSlider()
def print_val(v):
  print(v)
interact(print_val,v=slider)
Run Code Online (Sandbox Code Playgroud)

这在笔记本中工作得很好 - 当我更改滑块时,打印输出会发生变化。但是当我使用nbconvert将笔记本转换为 HTML 时,滑块在输出 HTML 中仍然呈现良好,但对打印输出没有影响。
知道如何让它发挥作用吗?也许 ipywidgets 不是适合此类内容的库?
谢谢!

python jupyter jupyter-notebook ipywidgets nbconvert

4
推荐指数
1
解决办法
5460
查看次数

Plotly:如何绘制累积“步数”直方图?

我正在尝试使用 python 中的 Plotly 绘制累积直方图,但使其看起来像“步骤”,即没有颜色且仅显示顶线的条形图。像这样的东西:

在此输入图像描述

基本上,我试图重现以下 matplotlib 代码的行为:

import matplotlib.pyplot as plt
plt.hist(x, cumulative=True, histtype='step')
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能做的最好的事情是:

import plotly.graph_objs as go
from plotly.offline import iplot
h = go.Histogram(x=x,
                         cumulative=dict(enabled=True),
                         marker=dict(color="rgba(0,0,0,0)",
                                     line=dict(color="red", width=1)))
iplot([h])
Run Code Online (Sandbox Code Playgroud)

结果如下:
在此输入图像描述

那么有什么技巧呢?

python histogram plotly plotly-python

2
推荐指数
1
解决办法
8510
查看次数

Snakemake - 不删除失败规则的输出

我有一个 Snakemake 工作流程,其中包含运行另一个“内部”snakemake 工作流程的规则。
有时内部工作流程的某个规则失败,就意味着内部工作流程失败。因此,output内部工作流程下列出的所有文件都会被外部工作流程删除,即使创建这些文件的内部工作流程的规则成功完成也是如此。
有没有办法防止snakemake删除失败规则的输出?或者也许您可以建议另一种解决方法?
一些注意事项:

  • 必须列出内部工作流的输出,因为它们用作外部工作流中其他规则的输入。
  • 我尝试将内部工作流程的输出设置为protected,但这没有帮助。
  • 我还尝试添加exit 0到内部工作流程的调用末尾,以使 Snakemake 认为它已成功完成,

像这样:

rule run_inner:
    input:
        inputs...
    output:
        outputs...
    shell:
        """
        snakemake -s inner.snakefile
        exit 0
        """
Run Code Online (Sandbox Code Playgroud)

但输出仍然被删除。
将不胜感激任何帮助。谢谢!

snakemake

1
推荐指数
1
解决办法
2077
查看次数