Python matplotlib绘图实战:中文显示、线条样式与网格控制
本文详解Python中matplotlib库的绘图技巧,涵盖中文标题与坐标轴乱码的解决方法,以及如何自定义线条颜色、粗细、线型及网格显示。通过完整代码示例,展示如何生成美观的折线图,适合Python初学者快速掌握基础绘图功能。
解决中文显示乱码问题
在使用 matplotlib 进行绘图时,若标题或坐标轴包含中文字符,默认配置下常会出现乱码。解决该问题的核心在于修改全局字体配置。通过设置 plt.rcParams['font.sans-serif'] 并指定支持中文的字体(如黑体 'SimHei'),即可正常渲染中文标签。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
基础绘图与坐标轴控制
绘制折线图需导入 matplotlib.pyplot 和 numpy。首先定义两组数据,随后通过 plt.plot() 指定颜色(color)与标签(label)。为优化图表美观度,可自定义横坐标刻度。利用 np.arange() 生成刻度序列,并通过 plt.xticks() 应用,使网格分布更均匀。
import matplotlib.pyplot as plt
import numpy as np
list1=[1,2,6,4,5,6,2,4,4,5,7]
list2=[2,3,5,8,12,1,3,4,6,2,4]
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.title('显示中文标题')
plt.xlabel("横坐标")
plt.ylabel("纵坐标")
x=np.arange(0,len(list1))+1 #//得到长度
x[0]=1 #%坐标从1开始
my_x_ticks = np.arange(1, 14, 1) #!控制横坐标网格化程度,显示更加美观
plt.xticks(my_x_ticks)
plt.plot(x,list1,label='list1',color='g')
plt.plot(x,list2,label='list2',color='b')
plt.legend()
plt.grid()#添加网格
plt.show()

自定义线条样式与颜色
plt.plot() 函数支持丰富的参数来自定义线条外观。除颜色外,还可设置线条宽度(linewidth)和线型(linestyle)。例如,使用 '-.' 表示点划线,'--' 表示虚线。通过组合这些参数,可生成视觉区分度更高的图表。
plt.plot(x,list1,label='list1',color='Magenta',linewidth=2,linestyle='-.')#添加linestyle设置线条类型
plt.plot(x,list2,label='list2',color='DarkTurquoise',linewidth=4,linestyle='--')

完整代码示例
以下是整合了中文显示、坐标控制、颜色及线型设置的完整绘图代码,可直接运行以生成最终图表。
import matplotlib.pyplot as plt
import numpy as np
list1=[1,2,6,4,5,6,2,4,4,5,7]
list2=[2,3,5,8,12,1,3,4,6,2,4]
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.title('显示中文标题')
plt.xlabel("横坐标")
plt.ylabel("纵坐标")
x=np.arange(0,len(list1))+1
x[0]=1
my_x_ticks = np.arange(1, 14, 1)
plt.xticks(my_x_ticks)
plt.plot(x,list1,label='list1',color='Magenta',linewidth=2,linestyle='-.')#添加linestyle设置线条类型
plt.plot(x,list2,label='list2',color='DarkTurquoise',linewidth=4,linestyle='--')
plt.legend()
plt.grid()#添加网格
plt.show()以上就是Python matplotlib绘图实战:中文显示、线条样式与网格控制的详细内容,更多关于Python基础绘图的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













