小编fug*_*ede的帖子

在XAML中设置WPF OxyPlot PlotViews的样式

设置OxyPlot绘图视图时,您可以通过各种控件显式定义绘图,也可以通过绑定到a来设置PlotModel.

因此,在第一种情况下,两个LineSeries对象的绘图的XAML 可能看起来像

<oxy:Plot Title="Some plot">
    <oxy:Plot.Axes>
        <oxy:LinearAxis Position="Left" />
        <oxy:LinearAxis Position="Bottom" />
    </oxy:Plot.Axes>
    <oxy:Plot.Series>
        <oxy:LineSeries ItemsSource="{Binding ActualSeriesData1}" DataFieldX="X" DataFieldY="Y"/>
        <oxy:LineSeries ItemsSource="{Binding ActualSeriesData2}" DataFieldX="X" DataFieldY="Y"/>
    </oxy:Plot.Series>
</oxy:Plot>
Run Code Online (Sandbox Code Playgroud)

具有非常薄的视图模型.另一方面,在第二种情况下,我只会有类似的东西

<oxy:PlotView Model="{Binding SomePlotModel}" />
Run Code Online (Sandbox Code Playgroud)

并在视图模型中构建实际的图.两种设置都有利有弊,但我发现第一种方法通常在我事先知道我想要绘制的内容时效果更好,而第二种方法允许对绘图内容进行动态更改.

我的问题如下:对于第一种情况,我知道如何为所有图添加一般样式.例如,如果我想让它们看起来像Seaborn,我会添加类似的东西

<x:Array Type="Color" x:Key="SeabornColors">
    <Color>#4c72b0</Color>
    <Color>#55a868</Color>
    <Color>#c44e52</Color>
    <Color>#8172b2</Color>
    <Color>#ccb974</Color>
    <Color>#64b5cd</Color>
</x:Array>
<Style TargetType="oxy:Plot">
    <Setter Property="PlotAreaBackground" Value="#EBEBF2" />
    <Setter Property="PlotAreaBorderThickness" Value="0" />
    <Setter Property="TitleFont" Value="Segoe UI" />
    <Setter Property="TitleFontWeight" Value="Normal" />
    <Setter Property="DefaultColors" Value="{StaticResource SeabornColors}"/>
</Style>
<Style TargetType="oxy:LinearAxis">
    <Setter Property="TicklineColor" Value="White" />
    <Setter Property="MajorGridlineColor" …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf xaml oxyplot

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

python 模块“pandas”没有属性“plotting”

我是Python的初学者。我关注英特尔的机器学习课程。我在编码中遇到了一些麻烦。我在 Jupyter 中运行下面的代码,它会引发一个AttributeError.

import pandas as pd
step_data = [3620, 7891, 9761,3907, 4338, 5373]
step_counts = pd.Series(step_data,name='steps')
print(step_counts)
Run Code Online (Sandbox Code Playgroud)

AttributeError:模块“pandas”没有属性“plotting”

python pandas

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

结合 doctest 和 Matplotlib Sphinx 扩展

Sphinx 扩展sphinx.ext.doctest可以轻松确保您的文档是最新的。同时,该matplotlib.sphinxext.plot_directive扩展使自动生成数字作为文档的一部分变得简单。

在我的情况下,我想结合两个扩展和

  1. 执行一些缓慢的计算,
  2. 使用 doctest 检查结果,
  3. 绘制结果。

也就是说,类似于下面的内容:

>>> import time
>>> def make_result():
...     time.sleep(100) 
...     return [3, 4]
>>> result = make_result()
>>> print(result)
[3, 4]

.. plot::

   >>> import matplotlib.pyplot as plt
   >>> plt.plot(result)
   >>> plt.show()
Run Code Online (Sandbox Code Playgroud)

就目前情况而言,这不太有效,因为绘图指令没有可用的前一个 doctest 块的上下文。此外,使用绘图指令的“上下文”选项似乎还不够,因为它消除了文档测试,并且意味着我将没有可用于未来非绘图指令块的上下文。

所以我的问题是:

将断言和绘图这两个操作结合起来的最佳方法是什么,同时仍然使断言作为 doctest 运行,并且无需运行缓慢的操作两次,并确保代码的 doctest 部分中设置的变量仍然可用文件的其余部分?

我拥有的最好的解决方法是以下方法,它可以工作,但需要您在 之前运行 doctests make html,并在尚未生成图像时在 doctest 运行中产生烦人的警告:

>>> import time
>>> def make_result():
...     time.sleep(100) 
...     return [3, 4]
>>> result = make_result()
>>> print(result)
[3, …
Run Code Online (Sandbox Code Playgroud)

python doctest matplotlib python-sphinx

6
推荐指数
0
解决办法
229
查看次数

pyzmq非阻塞套接字

有人可以指出一个带有Python绑定的REQ / REP非阻塞ZeroMQ(0MQ)的示例吗?也许我对ZMQ的理解是错误的,但我找不到在线示例。

我在Node.JS中有一台服务器,该服务器将工作从多个客户端发送到该服务器。这个想法是服务器可以启动一堆并行运行的作业,而不是先处理一个客户端的数据,然后再处理下一个客户端的数据。

python nonblocking zeromq node.js pyzmq

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

如何在 PyCharm 中获得 COM 编程的代码完成?

使用时app = win32com.client.Dispatch('Some.Application'),PyCharm中有没有可行的方法来完成代码?必须重新输入(或复制粘贴)API 文档中的所有内容是相当乏味的,创建框架也是如此。是否没有其他方法可以让 PyC​​harm 了解通过 COM 提供的接口,特别是如果我可以提供文件.tlb?或者至少有某种方法可以从 TypeLib 自动生成这样的骨架(或包装模块?)?

python typelib code-completion win32com pycharm

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

ActiveMQ - STOMP+SSL 与 Python STOMP 客户端

谁能解释一下如何将 SSL 添加到我正在使用的 Python STOMP 客户端。我在 ActiveMQ 配置文件中添加了 stomp+ssl 传输连接器,我的基本 Python STOMP 客户端如下:

import time
import sys
import stomp
class MyListener(stomp.ConnectionListener):
    def on_error(self, headers, message):
        print('received an error "%s"' % message)
    def on_message(self, headers, message):
        print('received a message "%s"' % message)
conn = stomp.Connection()
conn.set_listener('', MyListener())
conn.start()
conn.connect('admin', 'password', wait=True)
conn.subscribe(destination='/queue/test', id=1, ack='auto')
conn.send(body=' '.join(sys.argv[1:]), destination='/queue/test')
time.sleep(2)
conn.disconnect()
Run Code Online (Sandbox Code Playgroud)

我创建了http://activemq.apache.org/how-do-i-use-ssl.html文档中给出的密钥库和信任库,并将它们添加到SSL_OPTS代理中的环境变量中,但我找不到如何使用密钥库和信任库初始化 Python STOMP 客户端。我是否应该使用stomp.Connection()方法中给出的 SSL 参数,如果是,如何使用?

谁能解释一下是否还有其他方法可以通过 STOMP 添加 SSL?

python ssl activemq-classic stomp stomp.py

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

为什么接口 IOrderedEnumerable&lt;T&gt; 在 T 中不是协变的?

我正在查看 IOrderedEnumerable 的声明,令我惊讶的是它的 TElement 类型参数不是协变的。

public interface IOrderedEnumerable<TElement> : IEnumerable<TElement>, IEnumerable
{
    IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey>(Func<TElement, TKey> keySelector, IComparer<TKey> comparer, bool descending);
}
Run Code Online (Sandbox Code Playgroud)

它没有成为协变的原因是什么?

c# covariance

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

AttributeError:模块“tensorflow.python.training.checkpointable”没有属性“CheckpointableBase”

我一直在学习人工智能以及如何使用 Python 进行编码。我正在做一个项目,我决定更新一些 Python 包,这些包对工作来说并不新鲜,然后发生了一些事情,我无法编译我的代码。我删除了 Anaconda3 并重新设置,但没有用。我一直看到这个问题,我把它写为一个主题。如果有人帮助我,我将很感激获得一些帮助。

>>> import tensorflow as tf
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\__init__.py", line 63, in <module>
    from tensorflow.python.framework.framework_lib import *  # pylint: disable=redefined-builtin
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\framework\framework_lib.py", line 104, in <module>
    from tensorflow.python.framework.importer import import_graph_def
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\framework\importer.py", line 32, in <module>
    from tensorflow.python.framework import function
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\framework\function.py", line 36, in <module>
    from tensorflow.python.ops import resource_variable_ops
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\ops\resource_variable_ops.py", line 35, in <module>
    from tensorflow.python.ops import variables
  File "C:\Users\AliGalip\Anaconda3Yeni\lib\site-packages\tensorflow\python\ops\variables.py", …
Run Code Online (Sandbox Code Playgroud)

python artificial-intelligence anaconda deep-learning tensorflow

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

MSYS2 GCC在禁用SSE的浮点运算上将输出加倍

考虑下面的C程序.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char* argv[]) {
    double x = 4.5;
    double x2 = atof("3.5");
    printf("%.6f\n", x);
    printf("%.6f\n", x2);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用MSYS2提供的GCC版本进行编译时,输出最终取决于SSE的可用性:

$ gcc test.c && ./a.exe
4.500000
3.500000

$ gcc -mno-sse test.c && ./a.exe
4.500000
0.000000
Run Code Online (Sandbox Code Playgroud)

这种行为是否有意义,如果没有,是否有任何方法让GCC在这种情况下产生合理的结果(除了简单的删除之外的解决方案之外-mno-sse)?这是一些版本信息:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-msys/7.3.0/lto-wrapper.exe
Target: x86_64-pc-msys
Configured with: /msys_scripts/gcc/src/gcc-7.3.0/configure --build=x86_64-pc-msys --prefix=/usr --libexecdir=/usr/lib --
enable-bootstrap --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --with-ar
ch=x86-64 --with-tune=generic --disable-multilib --enable-__cxa_atexit --with-dwarf2 --enable-languages=c,c++,fortran,lt
o --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libgomp …
Run Code Online (Sandbox Code Playgroud)

gcc sse x86-64 calling-convention msys2

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

小时和分钟作为跨度超过一天的 Altair 图中的标签

我试图在 Altair 中创建时间范围跨越几天的时间序列图的 Vega-Lite 规范。由于在我的情况下,很清楚哪一天是哪一天,我想通过让标签的形式为 来减少轴标签中的噪音'%H:%M',即使这会导致标签不明显。

这是一些示例数据;我的实际数据有五分钟的分辨率,但我想这在这里不会太重要:

import altair as alt
import numpy as np
import pandas as pd

# Create data spanning 30 hours, or just over one full day
df = pd.DataFrame({'time': pd.date_range('2018-01-01', periods=30, freq='H'),
                   'data': np.arange(30)**.5})
Run Code Online (Sandbox Code Playgroud)

通过使用其他微不足道的yearmonthdatehoursminutes变换,我得到以下信息:

alt.Chart(df).mark_line().encode(x='yearmonthdatehoursminutes(time):T', 
y='data:Q')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

现在,我的目标是去掉水平轴标签中的日期,让它们变成类似['00:00', '03:00', ..., '21:00', '00:00', '03:00'],或者任何间距效果最好的东西。

仅用hoursminutes作转换的幼稚方法是行不通的,因为它会存储实际数据:

alt.Chart(df).mark_line().encode(x='hoursminutes(time):T', y='data:Q')
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

那么,有没有一种声明式的方式来做到这一点?最终,可视化将利用选择来定义水平轴限制,因此明确使用指定标签Axis似乎并不吸引人。

python data-visualization time-series vega-lite altair

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