熊猫到matplotlib与美元符号[英] Pandas to MatPlotLib with Dollar Signs

本文是小编为大家收集整理的关于熊猫到matplotlib与美元符号的处理方法,想解了熊猫到matplotlib与美元符号的问题怎么解决?熊猫到matplotlib与美元符号问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

给出以下数据帧:

import pandas as pd
df=pd.DataFrame({'A':['$0-$20','$20+']})
df
    A
0   0−20
1   $20+

我想在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(),我可以获得标签以显示"更好",但只是纠正格式. 我希望每个标签显示在每个栏下面,具有预期的原始格式(带美元符号).

提前感谢!

推荐答案

指定xticklabels,将tick_label=x传递到plt.bar.

matplotlib使用 tex标记的子集解析标签 语言.美元 标志表示数学模式的开始(和结束).所以一对赤牌符号是 无意中吞噬了.目前,没有一种方法来禁用mathtex解析.因此,为了防止美元符号被解释为数学标记,更换 裸露$与\$:

df['A'] = df['A'].str.replace('$', '\$')

例如,

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({'A': ['$0-$20', '$20+'], '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': ['$0-$20', '$20+'], '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()

在此处输入图像描述

本文地址:https://www.itbaoku.cn/post/1728191.html