小编Erw*_*411的帖子

matplotlib:图例标题的对齐方式

在matplotlib中,如何调整图例标题的对齐方式?它总是居中,但我需要它与图例框保持对齐.我试图更改标题的文本艺术家的对齐方式,但没有任何效果.有关详细信息,请参阅以下示例

from pylab import *

x = linspace(0, 1)
plot(x, x, label="1")
plot(x, x**2, label="2")
plot(x, x**3, label="3")
plot(x, sqrt(x), label="square root")

l = legend(title="Title", loc="best")
l.get_title().set_ha("left")               # <== does not work

show()
Run Code Online (Sandbox Code Playgroud)

问题归结为什么和谁控制标题对齐的锚点?将对齐更改为"右"或"中心"具有明显的效果.第二个观察:对于长标题字符串,锚点移动到图例框的左边界...

matplotlib

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

C++ 11:将std :: is_pointer扩展为std :: shared_ptr

我认为std::is_pointer在C++ 11中重载std::shared_ptr<T>也会产生正确,因为后者的表现非常像T*.

#include <type_traits>

namespace std {

template <typename T> struct is_pointer<shared_ptr<T>> : std::true_type {};
template <typename T> struct is_pointer<shared_ptr<T const>> : std::true_type {};

}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么这个重载还没有包含在标准实现中.我忽略了一个陷阱吗?

作为替代方案,当然可以引入新的特征is_shared_ptr<T>.

实际上,我首先尝试了以下代码:

template <typename T> 
struct is_pointer<shared_ptr<typename std::remove_cv<T>::type>>
  : std::true_type 
{};
Run Code Online (Sandbox Code Playgroud)

由于没有使用GCC 4.7编译

error: template parameters not used in partial specialization:
error:         ‘T’
Run Code Online (Sandbox Code Playgroud)

c++ templates shared-ptr type-traits c++11

13
推荐指数
3
解决办法
4262
查看次数

matplotlib:在标签的右侧放置图例符号

这是一件简单的事情,但我已经搜索了一段时间没有成功:我想通过反转符号和标签的水平顺序来自定义图形图例.

在Gnuplot中,这可以通过设置键反向来实现.示例:更改x data1data1 x.在matplotlib中,似乎没有用户友好的解决方案.因此,我考虑过改变一种手柄锚或只是改变手柄的位置,但是找不到任何要点.

python matplotlib legend

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

标签 统计

matplotlib ×2

c++ ×1

c++11 ×1

legend ×1

python ×1

shared-ptr ×1

templates ×1

type-traits ×1