Python中plt的画图函数

1、plt.legend

plt.legend(loc=0)#显示图例的位置,自适应方式
说明:
'best'         : 0, (only implemented for axes legends)(自适应方式)
'upper right'  : 1,
'upper left'   : 2,
'lower left'   : 3,
'lower right'  : 4,
'right'        : 5,
'center left'  : 6,
'center right' : 7,
'lower center' : 8,
'upper center' : 9,
'center'       : 10,

2、plt.figure

plt.figure(figsize=(14, 6), dpi=80)#设置绘图区域的大小和像素

3、plt.xticks

plt.xticks(new_year)#设置x轴的刻度线为new_year,new_year可以为数组

4、plt.xlabel

plt.xlabel('year')#x轴标签

5、plt.plot

plt.plot(number, color='blue', label="actual value")#将实际值的折线设置为蓝色

6、两个图分开

fig, axes = plt.subplots(2, 1,  sharex=True,figsize=(10,10))
axes[0].plot(range (len(data20)),data20,'r')
axes[1].plot(range (len(data40)),data40,'b') 

7、画竖直线

plt.axvline(99, linestyle="dotted", linewidth=4, color='r')#99表示横坐标

8、图片保存

plt.savefig('timeseries_y.jpg')

 

 

 

<think>我们正在解决Python matplotlib中文显示问题。根据引用资料,常见解决方法包括修改matplotlibrc配置文件或在代码中动态设置字体。 引用[1]提到需要修改配置文件,引用[3]详细描述了修改配置文件的步骤,引用[4]则提供了在代码中设置的方法。 同时,引用[2]展示了一个错误示例,提示字体设置不正确可能导致无法显示某些中文字符(显示为方块或警告)。 解决方案: 1. 修改配置文件(永久性解决): - 找到matplotlibrc文件(通常在matplotlib安装目录的mpl-data子目录下)。 - 打开该文件,找到并取消注释`font.family`(去掉行首的#),然后设置`sans-serif`字体列表,将支持中文的字体(如SimHei、AR PL UMing CN)放在前面。 - 同时,取消注释`axes.unicode_minus`并设置为False,以解决负号显示问题。 - 重启程序。 2. 在代码中动态设置(临时性解决,每次使用前设置): - 在绘图代码前加入: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体为黑体 plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题 ``` - 这样设置后,就可以在标签、标题等中使用中文。 注意:如果使用动态设置,需要确保系统中存在指定的字体(如SimHei)。在Linux系统中,可能需要安装中文字体。 如果仍然出现如引用[2]中的警告,说明指定的字体没有包含某些中文字符,可以尝试更换其他支持中文的字体(如Microsoft YaHei, SimSun等)。 另外,在较新的matplotlib版本中,也可以使用以下方法(更灵活): ```python from matplotlib.font_manager import FontProperties font = FontProperties(fname=r"c:\windows\fonts\simhei.ttf") # 指定字体文件路径 # 然后在具体绘图函数中指定字体属性 plt.xlabel('x轴', fontproperties=font) ``` 但这种方法需要在每个文本处单独设置,比较繁琐。因此,推荐使用全局设置(rcParams)的方式。 下面我们总结步骤并提供示例代码。</think>### Python matplotlib 中文显示问题解决方法 在 Python 中使用 matplotlib 绘图时,中文显示异常是常见问题,主要原因包括: 1. 默认字体不支持中文字符 2. 负号显示冲突 3. 字体配置文件未正确设置 #### 🛠️ 解决方案 ##### 方法1:代码中动态设置(推荐) ```python import matplotlib.pyplot as plt # 设置中文字体(黑体) plt.rcParams['font.sans-serif'] = ['SimHei'] # 或 ['Microsoft YaHei', 'SimSun'] # 解决负号显示问题 plt.rcParams['axes.unicode_minus'] = False # 示例绘图 plt.plot([1, 2, 3], [4, 5, 3]) plt.xlabel('X轴标签') plt.ylabel('Y轴标签') plt.title('中文标题') plt.show() ``` ##### 方法2:修改配置文件(永久生效) 1. 找到配置文件:`matplotlib/mpl-data/matplotlibrc` - 路径示例:`C:\PythonXX\Lib\site-packages\matplotlib\mpl-data` 2. 修改两处配置: ```ini # 取消注释并添加中文字体 font.family: sans-serif font.sans-serif: SimHei, DejaVu Sans, ... # 其他字体 # 取消注释并修改 axes.unicode_minus: False ``` 3. 重启Python环境 ##### 方法3:指定字体文件路径 ```python from matplotlib.font_manager import FontProperties font = FontProperties(fname=r'C:\Windows\Fonts\simhei.ttf') # 字体文件路径 plt.xlabel('自定义位置', fontproperties=font) ``` #### 💡 注意事项 1. 确保系统中存在指定字体(如 `SimHei` 黑体) 2. Linux/macOS 用户需安装中文字体包 3. 使用 `plt.text()` 等函数时也需设置 `fontproperties` 参数 4. Jupyter 用户需在 notebook 开头执行设置代码 #### 常见错误处理 - **方块字/乱码**:字体不支持中文 → 更换支持中文的字体 - **负号不显示**:未设置 `axes.unicode_minus = False` - **特殊符号缺失警告**:如引用[2]中的 `MathTextWarning` → 确保字体包含所需字符集 > 实测有效方案:方法1代码设置 + 方法2配置文件修改双重保障[^3][^4] #### 示例效果 ```python # 完整示例 import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.title('正弦函数曲线') plt.xlabel('时间 (秒)') plt.ylabel('振幅') plt.grid(True) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值