在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)
问题归结为什么和谁控制标题对齐的锚点?将对齐更改为"右"或"中心"具有明显的效果.第二个观察:对于长标题字符串,锚点移动到图例框的左边界...
我认为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) 这是一件简单的事情,但我已经搜索了一段时间没有成功:我想通过反转符号和标签的水平顺序来自定义图形图例.
在Gnuplot中,这可以通过设置键反向来实现.示例:更改x data1为data1 x.在matplotlib中,似乎没有用户友好的解决方案.因此,我考虑过改变一种手柄锚或只是改变手柄的位置,但是找不到任何要点.