在Matplotlib中使用'%'作为Plot标签的问题

时间:2017-05-12 12:43:41

标签: python matplotlib

我正在尝试创建一个显示不同参数'a'和'b'的子图,它们的单位分别为'MPa'和'%'。在该示例中,我使用单独的数据框,其中包含有关单元的信息。原因是因为数据帧来自数据库。

我似乎不断为参数'b'收到以下错误:

  

ValueError:1 b:($ %% $)            ^预期的文本结尾(在char 9),(line:1,col:10)

代码如下: -

import pandas as pd
import matplotlib.pyplot as plt

#Random Data
units = pd.DataFrame([['a', 'MPa'], ['b', '%']], index = [0,1], columns = ['Type', 'Unit'])
data = pd.DataFrame({'Val':[20,30,50,70,80,90,20,10,15,99,58],
                     'Depth':[10,20,30,40,10,20,30,40,50,100,110],
                     'Type':['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b','b']})

#Plot Data
fig, (ax1, ax2) = plt.subplots(1,2)
ax1_unit = units.loc[units['Type'] == 'a', 'Unit']
ax2_unit = units.loc[units['Type'] == 'b', 'Unit']

ax1.plot(data.loc[data['Type'] == 'a', 'Val'],
         data.loc[data['Type'] == 'a', 'Depth'])

ax1.set_xlabel('a: ($' + ax1_unit + '$)')

ax2.plot(data.loc[data['Type'] == 'b', 'Val'],
         data.loc[data['Type'] == 'b', 'Depth'])

ax2.set_xlabel('b: ($' + ax2_unit + '$)')

fig.show()

我认为它与'%'是保留字符有关。我已尝试将其替换为'%%'甚至'%%%',如某些地方所建议的那样无法使用。

0 个答案:

没有答案