Dataframe的plot方法如何定义字体

使用axis类来定义:

from matplotlib.figure import Figure
from matplotlib.text import Text

featp = df.plot(kind='barh', x='feature', y='fscore', legend=False, figsize=(6, 6))
fig_featp = featp.get_figure()
assert isinstance(fig_featp, Figure)
axs = fig_featp.get_axes()
for ax in axs:
    for tick in ax.get_yticklabels():
        tick.set(fontname=font_name, fontsize=12)

    for tick in ax.get_xticklabels():
        print(type(tick))
        assert isinstance(tick, Text)
        tick.set(fontname=font_name, fontsize=12)
        # tick.set_fontsize(12)
        tick.set_fontname(font_name)
plt.rcParams.update({'figure.autolayout': True})
plt.show()
plt.close()

 

 

转载于:https://my.oschina.net/u/2996334/blog/3024690

### 如何在 Python 的 Matplotlib 和 Seaborn 中为 Plot 添加图例 #### 使用 Matplotlib 添加图例 当利用 `matplotlib` 绘制图形并希望加入图例外,可以通过调用 `plt.legend()` 函数实现这一功能[^1]。默认情况下,如果不指定任何参数,图例会被放置于图像内部的最佳适配位置。 下面给出一段简单的例子来展示如何操作: ```python import matplotlib.pyplot as plt import numpy as np x = np.arange(10) fig = plt.figure() ax = plt.subplot(111) for i in range(5): # 更正了原代码中的语法错误,使用range代替xrange以适应Python3 ax.plot(x, i * x, label=r'$y = {}x$'.format(i)) # 此处修正字符串格式化方式以便兼容Python3 plt.legend() plt.show() ``` 这段代码会创建一系列线性关系曲线,并通过设定每条线对应的标签,在最终呈现的结果里自动生成相应的图例说明。 对于更复杂的布局需求,比如想要把多个子图组合在一起的时候,则可以借助 `pandas.DataFrame.plot()` 方法里的 `ax` 参数来进行更加精细的控制[^2]。 #### 设置中文环境下的图例显示 如果涉及到中文字符作为图例内容或其他文本标注时,为了确保这些文字能够正确无误地展现出来,建议预先配置好字体相关的全局属性[^3]: ```python import matplotlib.pyplot as plt # 配置Matplotlib支持中文 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False ``` 上述设置使得后续所有的绘图命令都能识别并渲染简体中文以及解决可能出现的负数符号异常问题。 #### 利用 Seaborn 库简化绘图过程 Seaborn 是基于 Matplotlib 构建的一个高级接口库,它提供了更多样化的统计图表样式选项。同样地,在 seaborn 创建的 plot 上也可以很方便地添加图例。通常来说,只要给定的数据集包含了分类变量的信息,那么所生成的可视化结果就会自动带有合适的图例描述;当然也允许手动调整其外观特性。 例如,当我们绘制柱状图时,可以直接应用如下语句完成任务[^4]: ```python import pandas as pd import seaborn as sns data = pd.Series(np.random.rand(16), index=list('abcdefghijklmnop')) sns.set(style="whitegrid") # 可选:定义整体风格 g = sns.barplot(y=data.values, x=data.index) g.set_title(u'随机数据分布') # 增加标题(注意这里的u前缀用于表示Unicode字符串) plt.show() ``` 此段脚本不仅展示了怎样快速构建美观大方的直方图,同时也示范了如何轻松集成中文标题至图表之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值