小编Mic*_*sLE的帖子

情节表达方面图中的单轴标题

我正在学习使用 pyplot.express 并努力解决以下设计问题:在多面图中,每个子图的轴标题都会重复(在示例中为“花瓣宽度 (cm)”)。有没有办法使用 pyplot.express 为分面图上的所有子图获取单轴标签?

谢谢,迈克尔

最小的例子:

from sklearn.datasets import load_iris
import plotly.express as px
import pandas as pd
import numpy as np

# import iris-data
iris = load_iris()
df= pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns= iris['feature_names'] + ['target'])
df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)

# plot using pyplot.express
fig = px.bar(df, x="sepal length (cm)", y="petal width (cm)", color = 'petal length (cm)', facet_row="species")
fig.show()
Run Code Online (Sandbox Code Playgroud)

虹膜分面图

python graph plotly plotly-express

6
推荐指数
2
解决办法
3403
查看次数

使用SAX在Java中解析XML:将值减少两半

我正在尝试读取基于xml的文件格式,并在JAVA中使用SAX称为mzXML.它携带部分编码的质谱数据(具有强度的信号).

这就是感兴趣的条目看起来像(有更多的信息):

    <peaks ... >eJwBgAN//EByACzkZJkHP/NlAceAXLJAckeQ4CIUJz/203q2...</peaks>
Run Code Online (Sandbox Code Playgroud)

可以在此处下载一个强制错误的完整文件.

其中一个条目中的String包含大约500个压缩和base64编码的双精度对(信号和强度).我所做的是解压缩和解码,以获取值(解码未在下面的示例中显示).这对小型数据集来说都很好.现在我使用了更大的一个,我遇到了一个我不理解的问题:

过程字符(ch,start,length)不会读取之前显示的行中的完整条目.该长度值似乎是小.

当我刚刚将峰值条目打印到控制台时,我没有看到这个问题,因为有很多字母而且我没有意识到字母丢失了.但是当缺少信息时,减压失败了.当我重复运行这个程序时,它总是在同一点打破同一行而不给出任何异常.如果我通过删除扫描来更改mzXML文件,它会在不同的位置中断.我在character()过程中使用断点查看currentValue的内容时发现了这一点

以下是概括问题所需的一段代码:

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.DataFormatException;
import java.util.zip.Inflater;

import javax.xml.bind.DatatypeConverter;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class ReadXMLFile {

    public static byte[] decompress(byte[] data) throws IOException, DataFormatException { 
        Inflater inflater = new Inflater();  
        inflater.setInput(data); 

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream(data.length); 
        byte[] buffer = new byte[data.length*2]; 
        while (!inflater.finished()) { 
            int count = inflater.inflate(buffer); 
            outputStream.write(buffer, 0, count); 
        } …
Run Code Online (Sandbox Code Playgroud)

java xml sax saxparser

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

Chrome 扩展:后台脚本未启动,仅在刷新后启动

三天前我开始使用 chrome 扩展,我非常喜欢它。我遇到了一个问题:我最小化了重现问题的脚本:

如果我在 stackoverflow.com,如果它向后台脚本发送消息并收到“工作”消息,我可以单击该图标,然后会打开一个弹出窗口,显示“工作”。

如果我现在重新启动浏览器,我会收到一个弹出窗口,提示开发人员模式下的扩展可能有害,以及我是否要停用它们。我忽略了此消息,当我现在单击扩展程序时,它不起作用,并且出现以下错误:

Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
Run Code Online (Sandbox Code Playgroud)

我发现后台脚本没有运行(我没有收到来自background.js的警报或打印到background.js控制台)。我想扩展程序和background.js可能被chrome阻止启动,因为它是开发人员模式下的扩展程序。让扩展再次运行的唯一方法是从 chrome://extensions 刷新扩展。

我尝试使用持久和非持久后台脚本,但这并没有改变行为。

我的分析是否正确,因此是在网上商店部署脚本以使其正常运行的唯一解决方案?或者是否有另一种方法可以使应用程序在开发者模式下在 chrome 启动时启动?

这是最小的例子:

清单.json

{
    "name": "BackgroundScript Error",
    "version": "0.0.1",
    "manifest_version": 2,
    "description": "When starting Chrome, background doesn't start, but when refreshing, background starts",
    "page_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "permissions": ["declarativeContent", "<all_urls>"],
    "background": {
        "scripts": ["background.js"],
        "persistent": false
    }
}
Run Code Online (Sandbox Code Playgroud)

背景.js

chrome.runtime.onInstalled.addListener(function() {
    console.log('Background script is running');
    alert("Background is running");
    chrome.declarativeContent.onPageChanged.removeRules(undefined, function() …
Run Code Online (Sandbox Code Playgroud)

html javascript google-chrome google-chrome-extension

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