小编Joh*_*ohn的帖子

Python matplotlib限制为整数刻度位置

我常常想制作计数条形图.如果计数很低,我经常得到不是整数的主要和/或次要刻度位置.我怎么能阻止这个?当数据是计数时,在1.5处打勾是没有意义的.

这是我的第一次尝试:

import pylab
pylab.figure()
ax = pylab.subplot(2, 2, 1)
pylab.bar(range(1,4), range(1,4), align='center')
major_tick_locs = ax.yaxis.get_majorticklocs()
if len(major_tick_locs) < 2 or major_tick_locs[1] - major_tick_locs[0] < 1:
    ax.yaxis.set_major_locator(pylab.MultipleLocator(1))
minor_tick_locs = ax.yaxis.get_minorticklocs()
if len(minor_tick_locs) < 2 or minor_tick_locs[1] - minor_tick_locs[0] < 1:
    ax.yaxis.set_minor_locator(pylab.MultipleLocator(1))
Run Code Online (Sandbox Code Playgroud)

当计数很小时工作正常但是当它们很大时,我得到很多很小的刻度:

import pylab
ax = pylab.subplot(2, 2, 2)
pylab.bar(range(1,4), range(100,400,100), align='center')
major_tick_locs = ax.yaxis.get_majorticklocs()
if len(major_tick_locs) < 2 or major_tick_locs[1] - major_tick_locs[0] < 1:
    ax.yaxis.set_major_locator(pylab.MultipleLocator(1))
minor_tick_locs = ax.yaxis.get_minorticklocs()
if len(minor_tick_locs) < 2 or minor_tick_locs[1] - minor_tick_locs[0] < 1:
    ax.yaxis.set_minor_locator(pylab.MultipleLocator(1)) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

如何在R markdown中使用eqnarray进行html和pdf输出?

我无法弄清楚如何使用eqnarray在R markdown中创建方程式,这样我就可以创建html和pdf输出.这个R降价适用output_format='html_document'但不适用output_format='pdf_document'

My LaTeX equations
$$
\begin{eqnarray}
A &=& x \\
B &=& y
\end{eqnarray}
$$
Run Code Online (Sandbox Code Playgroud)

对于pdf输出,它会出现此错误:

! Missing \endgroup inserted.
<inserted text> 
                \endgroup 
l.81 \begin{eqnarray}

pandoc: Error producing PDF from TeX source
Error: pandoc document conversion failed with error 43
Run Code Online (Sandbox Code Playgroud)

如果我删除$$那么这个R markdown适用于pdf输出但是html输出中缺少等式.

My LaTeX equations
\begin{eqnarray}
A &=& x \\
B &=& y
\end{eqnarray}
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?有没有办法从同一个文档生成pdf和html输出?

r r-markdown

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

如何打包python模块所依赖的共享对象?

我有一个用C++实现的python包,我使用setuptools进行分发.我的C++代码依赖于一些共享对象,特别是boost.python库.我应该如何分发这些共享对象?目前我要求软件包用户单独安装boost C++库,但我宁愿将所有内容捆绑在一个setuptools发行版中,以使他/她更容易.目前LD_LIBRARY_PATH,除了安装我的软件包之外,他们还必须设置boost库及其环境变量.

c++ python boost-python

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

使用karma为指针向量生成输出

我在使用karma为boost :: shared_ptrs的向量中保存的结构生成输出时遇到了一些麻烦.我有一个使用不能编译的int的小测试用例.我以为我可以使用deref_iterator自定义点来处理这种情况,或者也许开箱即用的精神会注意到我的容器持有指针类型并进行额外的解引用.无论如何,这是测试用例:

#include <boost/spirit/include/karma.hpp>
#include <boost/shared_ptr.hpp>
#include <vector>

typedef boost::shared_ptr< int > ptr;
typedef std::vector< ptr > vec;

namespace boost {
namespace spirit {
namespace traits {

// specialise how iterators into containers of pointers are dereferenced
template <>
struct deref_iterator< typename container_iterator< vec const >::type >
{
    typedef int type;

    static
    type
    call( typename container_iterator< vec const >::type & it ) {
        return **it;
    }
};

} // namespace traits
} // namespace spirit
} // namespace boost …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-spirit boost-spirit-karma

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

用lookahead解决模糊的boost :: spirit :: qi语法

我想要一个名称 - 值对列表.每个列表都以'.'结尾.和EOL.每个名称 - 值对用':'分隔.每对由';'分隔 在列表中.例如

NAME1: VALUE1; NAME2: VALUE2; NAME3: VALUE3.<EOL>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是值包含'.' 并且最后一个值总是消耗'.' 在EOL.我可以使用某种前瞻来确保最后一个'.' 在EOL被区别对待之前?

c++ boost boost-spirit boost-spirit-qi

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