【问题标题】:title in italic font in matplotlib isn't workingmatplotlib 中的斜体标题不起作用
【发布时间】:2014-09-26 08:41:20
【问题描述】:
import matplotlib.pyplot as plt
from textwrap import wrap

x_list = [11, 3, 6, 5]
label_list = ["red colour", "blue colour", "green colour", "back colour"]

title = "Some really really long long long title I really really need - and just can't - just can't - make it any - simply any - shorter - at all?"

newtitle = '\n'.join(wrap(title, width=50))  # wrap the long title so that it won't get cropped.

# here if I print `newtitle` first then "text below the main title" gets convert into italics
newtitle = "%s\n$%s$"%(newtitle, 'text\ below\ the\ main\ title') 
# but If I print `newtitle` after the secondary text it doesn't convert into italics
newtitle = "%s\n$%s$"%('text\ below\ the\ main\ title', newtitle)  # comment this line for 1st effect

plt.figure(figsize=(7,6), dpi=100)
plt.axis("equal")
plt.subplots_adjust(left=0.1, right=0.8, top=0.7)
plt.rc("font", size=10)
explode = [0.03, 0, 0, 0]

plt.pie(x_list, labels=label_list, explode=explode, autopct="%1.1f%%", startangle=90)
plt.title(newtitle, size=12)

plt.savefig('test.png')

所以我的主要问题是 -

次要文本首先以普通字体出现,然后主要标题(newtitle)以斜体/浅字体出现(看起来很漂亮)。

newtitle = "%s\n$%s$"%('text\ below\ the\ main\ title', newtitle)

我们可以不使用$ 符号吗?

【问题讨论】:

  • 你检查过这个:stackoverflow.com/a/4056853/832621 吗?
  • @SaulloCastro:是的.. 但它的代码太多了。我想知道这是否可以巧妙地/很快地完成。

标签: python python-2.7 python-3.x matplotlib


【解决方案1】:

这是预期的结果吗?

使用mathtext 可以快速而肮脏地完成,但你必须让$ 剥落每一行,例如:

newtitle = '\n'.join(['$%s$'%item for item in wrap(title, width=50)]).replace(' ', '\ ')
newtitle = "%s\n%s"%('text\ below\ the\ main\ title', newtitle)

但我认为更好看的方法是将这两个标题分开。您可以将suptitle 用于上层,或者只使用text,无论哪种方式,您都可以独立控制它们的属性。例如:

plt.pie(x_list, labels=label_list, explode=explode, autopct="%1.1f%%", startangle=90)
plt.title('\n'.join(wrap(title, width=50)), size=12, style='italic')
plt.suptitle('some title', y=0.85, x=0.45) #y and x needed as you have adjusted the subplot size already.

【讨论】:

    猜你喜欢
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2020-10-24
    相关资源
    最近更新 更多