python matplotlib 画图刻度、图例等字体、字体大小、刻度密度、线条样式设置

设置输出的图片大小:

 

figsize = 11,9
figure, ax = plt.subplots(figsize=figsize)

 

 

 

画简单的折线图,同时标注线的形状、名称、粗细:

 

A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0,ms=10)

 

其中线条样式以及颜色设置可参考:https://blog.csdn.net/code_segment/article/details/79217700,个人觉得介绍非常详尽。

线条粗细使用linewidth设置,对应线条上的marker大小设置为ms参数。因为有时候粗线条,所以对应marker大小也需要增加。

如果想要标记marker为空心,可以在后面加上 markerfacecolor='none'

 

设置图例以及对应属性:

 

legend = plt.legend(handles=[A,B],prop=font1)

图例的字体格式在prop中进行设置,赋值font1可以是一个字典,包含各个属性及其对应值,属性包括family(字体)、size(字体大小)等常用属性,更详细的解释可参考matplotlib手册中关于legend prop的解释。

 


一种比较简单的设置为:

 

font1 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 23,
}

 

坐标轴刻度密度/间隔设置:

ax.xaxis.set_major_locator(MultipleLocator(10))

括号中的数字为对应的刻度间隔值,y轴对应类似。

 

坐标轴刻度值属性设置:

 

plt.tick_params(labelsize=23)
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname('Times New Roman') for label in labels]

其中tick_params中可设置一系列属性,包括刻度值字体大小、方向、大小,颜色等一系列属性,具体可参见手册中关于tick_params的解释。

 

比较特殊的是,其中并没有对刻度值的字体进行设置的属性,所以我们需要使用下面两行进行设置,在最初使用plt.subplots中有得到一个返回值ax,我们使用ax.get_xticklabels()以及ax.get_yticklabels()来得到所有的刻度值,并使用set_fontname函数来设置属性。

 

坐标轴名称以及对应字体属性设置:

 

plt.xlabel('round',font2)
plt.ylabel('value',font2)

这种比较简单,第一个参数为坐标轴名称,第二个参数也是一个字典参数,和上文提及的dict font1格式相同。

 

有时候,因为调整了坐标刻度的字体大小,影响了坐标轴label的显示。所以我们需要通过调整坐标轴边距来显示label

plt.subplots_adjust(left = 0.15,bottom=0.128)

下面我们给出一个比较简单的画图过程:

 

#--coding:utf-8--
import  matplotlib.pyplot as plt

#数据设置
x1 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
y1=[0, 223, 488, 673, 870, 1027, 1193, 1407, 1609, 1791, 2113, 2388];

x2 =[0,5000,10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000, 50000, 55000];
y2=[0, 214, 445, 627, 800, 956, 1090, 1281, 1489, 1625, 1896, 2151];

#设置输出的图片大小
figsize = 11,9
figure, ax = plt.subplots(figsize=figsize)

#在同一幅图片上画两条折线
A,=plt.plot(x1,y1,'-r',label='A',linewidth=5.0)
B,=plt.plot(x2,y2,'b-.',label='B',linewidth=5.0)

#设置图例并且设置图例的字体及大小
font1 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 23,
}
legend = plt.legend(handles=[A,B],prop=font1)

#设置坐标刻度值的大小以及刻度值的字体
plt.tick_params(labelsize=23)
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname('Times New Roman') for label in labels]

#设置横纵坐标的名称以及对应字体格式
font2 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 30,
}
plt.xlabel('round',font2)
plt.ylabel('value',font2)

#将文件保存至文件中并且画出图
plt.savefig('figure.eps')
plt.show()

 

 

 

 

 

 

 

最终生成的图片效果如下:


 

更多的画图代码参考也可见手册中的Examples using matplotlib.pyplot.plot,可以翻到超链接跳转页面的最下方,有很多画图的示例,点进去即为对应实现代码。可以找到适用的代码实现方式。pyplot.subplots下也有很多很好的示例!

  • 130
    点赞
  • 752
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
设置Python画图图例字体大小,可以使用Matplotlib库中的legend函数,并传入fontsize参数来调整字体大小。具体代码如下所示: ```python import matplotlib.pyplot as plt # 其他代码... # 设置图例字体大小 ax.legend(..., fontsize=20) ``` 其中`...`代表省略的其他参数,你可以根据实际情况填写。将`fontsize`参数设置为你想要的字体大小,比如这里设置为20。 另外,你也可以使用`ax.set_xlabel`和`ax.set_ylabel`来设置坐标标签的字体大小,代码如下: ```python import matplotlib.pyplot as plt # 其他代码... # 设置坐标标签字体大小 ax.set_xlabel(..., fontsize=20) ax.set_ylabel(..., fontsize=20) ``` 同样,将`...`替换为你需要的参数。通过设置`fontsize`参数,你也可以调整坐标标签的字体大小。 请注意,以上代码只是示例,你需要根据实际情况进行修改和适配。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [python Matplotlib画图之调整字体大小的示例](https://blog.csdn.net/chengxun03/article/details/105825456)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Python画图设置字体和字号](https://blog.csdn.net/gwruiki/article/details/128354311)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值