我想用一个格式很好的图例绘制一个图表.

import matplotlib.pyplot as plt

test_label ="""\
CL      :1.2565
CM      :1.2565
Tot CD  :1.2565"""

fig, ax = plt.subplots()

foil=[(0, 1), (0, 0), 'black']
ax.plot(*foil, label=test_label)

plt.xlim(-0.5, 1.5)
plt.ylim(-0.75, 0.75)
plt.legend(frameon=False)
plt.show(block=False)

正如您所见,test_label的格式很好(垂直对齐的冒号),但在我进行实际绘图时,这种对齐方式不会保留.

strong text

有谁能建议一种方法来放置这个图例,使所有冒号都垂直对齐?

推荐答案

您可能需要将字体类型更改为monospace.

代码:

import matplotlib.pyplot as plt

test_label ="""\
CL      :1.2565
CM      :1.2565
Tot CD  :1.2565"""

# Change the font type.
plt.rcParams['font.family'] = 'monospace'

fig, ax = plt.subplots()

foil=[(0, 1), (0, 0), 'black']
ax.plot(*foil, label=test_label)

plt.xlim(-0.5, 1.5)
plt.ylim(-0.75, 0.75)
plt.legend(frameon=False)
plt.show(block=False)

输出:

enter image description here

Python相关问答推荐

如何使用没有Selenium的Python在百思买着陆页面上处理国家/地区 Select ?

如何让 turtle 通过点击和拖动来绘制?

如何从具有多个嵌入选项卡的网页中Web抓取td类元素

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

通过Selenium从页面获取所有H2元素

如何使用数组的最小条目拆分数组

如何在给定的条件下使numpy数组的计算速度最快?

从一个系列创建一个Dataframe,特别是如何重命名其中的列(例如:使用NAs/NaN)

在pandas中使用group_by,但有条件

为一个组的每个子组绘制,

如何在turtle中不使用write()来绘制填充字母(例如OEG)

无论输入分辨率如何,稳定扩散管道始终输出512 * 512张图像

为什么常规操作不以其就地对应操作为基础?

python sklearn ValueError:使用序列设置数组元素

Polars map_使用多处理对UDF进行批处理

在极点中读取、扫描和接收有什么不同?

多个矩阵的张量积

为什么在Python中00是一个有效的整数?

Matplotlib中的曲线箭头样式

如何在Pandas中用迭代器求一个序列的平均值?