Pandas 到带美元符号的 MatPlotLib
Pandas to MatPlotLib with Dollar Signs
给定以下数据框:
import pandas as pd
df=pd.DataFrame({'A':['[=11=]-','+']})
df
A
0 0−20
1 +
我想在 MatPlotLib 中创建条形图,但我似乎无法正确显示美元符号。
这是我拥有的:
import matplotlib.pyplot as plt
import numpy as np
y=df.B
x=df.A
ind=np.arange(len(x))
fig, ax = plt.subplots(1, 1, figsize = (2,2))
plt.bar(ind, y, align='center', width=.5, edgecolor='none', color='grey')
ax.patch.set_facecolor('none')
ax.patch.set_alpha(0)
ax.set_ylim([0,5])
ax.set_xlabel(x,fontsize=12,rotation=0,color='grey')
ax.set_xticklabels('')
ax.set_yticklabels('')
如果我使用 df.A.values.tolist()
,我可以让标签显示 "better",但这只是更正了格式。
我希望每个标签都以预期的原始格式(带有美元符号)显示在每个栏下。
提前致谢!
要指定 xticklabels,请将 tick_label=x
传递给 plt.bar
。
Matplotlib 使用 TeX 标记的子集解析标签
语言。美元
符号表示数学模式的开始(和结束)。所以成对的裸美元符号是
不小心被吞了。目前,没有办法。所以为了防止美元符号被解释为数学标记,替换
裸 $
与 $
:
df['A'] = df['A'].str.replace('$', '$')
例如,
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({'A': ['[=11=]-', '+'], 'B': [10,20]})
df['A'] = df['A'].str.replace('$', '$')
y = df['B']
x = df['A']
ind = np.arange(len(x))
fig, ax = plt.subplots(1, 1, figsize=(2, 2))
plt.bar(ind, y,
tick_label=x,
align='center', width=.5, edgecolor='none',
color='grey')
plt.show()
或者,您可以使用 df.plot(kind='bar')
:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({'A': ['[=12=]-', '+'], 'B': [10,20]})
df['A'] = df['A'].str.replace('$', '$')
fig, ax = plt.subplots(1, 1, figsize=(2, 2))
df.plot(kind='bar', x='A', y='B',
align='center', width=.5, edgecolor='none',
color='grey', ax=ax)
plt.xticks(rotation=25)
plt.show()
给定以下数据框:
import pandas as pd
df=pd.DataFrame({'A':['[=11=]-','+']})
df
A
0 0−20
1 +
我想在 MatPlotLib 中创建条形图,但我似乎无法正确显示美元符号。
这是我拥有的:
import matplotlib.pyplot as plt
import numpy as np
y=df.B
x=df.A
ind=np.arange(len(x))
fig, ax = plt.subplots(1, 1, figsize = (2,2))
plt.bar(ind, y, align='center', width=.5, edgecolor='none', color='grey')
ax.patch.set_facecolor('none')
ax.patch.set_alpha(0)
ax.set_ylim([0,5])
ax.set_xlabel(x,fontsize=12,rotation=0,color='grey')
ax.set_xticklabels('')
ax.set_yticklabels('')
如果我使用 df.A.values.tolist()
,我可以让标签显示 "better",但这只是更正了格式。
我希望每个标签都以预期的原始格式(带有美元符号)显示在每个栏下。
提前致谢!
要指定 xticklabels,请将 tick_label=x
传递给 plt.bar
。
Matplotlib 使用 TeX 标记的子集解析标签
语言。美元
符号表示数学模式的开始(和结束)。所以成对的裸美元符号是
不小心被吞了。目前,没有办法$
与 $
:
df['A'] = df['A'].str.replace('$', '$')
例如,
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({'A': ['[=11=]-', '+'], 'B': [10,20]})
df['A'] = df['A'].str.replace('$', '$')
y = df['B']
x = df['A']
ind = np.arange(len(x))
fig, ax = plt.subplots(1, 1, figsize=(2, 2))
plt.bar(ind, y,
tick_label=x,
align='center', width=.5, edgecolor='none',
color='grey')
plt.show()
或者,您可以使用 df.plot(kind='bar')
:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({'A': ['[=12=]-', '+'], 'B': [10,20]})
df['A'] = df['A'].str.replace('$', '$')
fig, ax = plt.subplots(1, 1, figsize=(2, 2))
df.plot(kind='bar', x='A', y='B',
align='center', width=.5, edgecolor='none',
color='grey', ax=ax)
plt.xticks(rotation=25)
plt.show()