报错C:\Anaconda3\lib\site-packages\IPython\core\pylabtools.py:151: UserWarning: Glyph 26032 (\N{CJK UNIFIED IDEOGRAPH-65B0}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) C:\Anaconda3\lib\site-packages\IPython\core\pylabtools.py:151: UserWarning: Glyph 20215 (\N{CJK UNIFIED IDEOGRAPH-4EF7}) missing from current font. fig.canvas.print_figure(bytes_io, **kw)
时间: 2023-07-11 15:44:28 浏览: 538
这是因为默认字体中没有包含某些需要使用的中文字符,导致绘图出现了问题。我们可以在绘图之前设置字体,以解决这个问题。
可以使用如下代码设置字体:
```python
from matplotlib.font_manager import FontProperties
# 设置中文字体
font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)
```
其中,`fname`是字体文件所在的路径,这里使用的是SimHei字体,您可以根据自己的需要修改。
然后在绘图时,将需要使用中文的地方,比如x轴标签、y轴标签、标题等,都加上`fontproperties=font`的参数,指定使用刚刚设置的字体。
代码如下:
```python
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
# 创建DataFrame对象
data = {'证券代码': ['000609', '000993', '002615', '000795', '002766', '000971', '000633', '300173', '300279', '000831'],
'证券简称': ['中迪投资', '闽东电力', '哈尔斯', '英洛华', '索菱股份', '高升控投', '合金投资', '智慧松德', '和晶科技', '五矿稀土'],
'最新价': [4.8, 4.8, 5.02, 3.93, 6.78, 3.72, 4.6, 4.6, 5.81, 9.87],
'涨跌幅%': [10.09, 10.09, 10.09, 10.08, 10.06, 10.06, 10.06, 10.5, 10.05, 10.04]}
df = pd.DataFrame(data)
# 设置中文字体
font = FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf", size=14)
# 绘制条形图
plt.bar(df['证券简称'], df['最新价'])
plt.xticks(rotation=90, fontproperties=font) # x轴标签旋转90度,防止重叠
plt.xlabel('证券简称', fontproperties=font)
plt.ylabel('最新价', fontproperties=font)
plt.title('股票数据', fontproperties=font)
plt.show()
```
这样就可以成功绘制中文字符了。
阅读全文