下面是我的多索引数据框
travel_spending
state ethinicity
CA Asian 233.404580
MA Asian 748.117647
NY Asian 350.880000
CA Black 146.898148
MA Black 99.849057
NY Black 125.206897
CA Chinese 387.398601
MA Chinese 119.636364
NY Chinese 263.245283
CA Hispanic 131.156484
MA Hispanic 200.220859
NY Hispanic 175.738589
CA American Indian 36.500000
MA American Indian 67.500000
NY American Indian 81.800000
CA Japanese 365.029703
MA Japanese 28.666667
NY Japanese 241.500000
CA Other 257.953356
MA Other 208.178174
NY Other 255.144436
CA Portuguese 26.000000
MA Portuguese 22.000000
CA White 222.322485
MA White 167.293194
NY White 140.080838
我能够很容易地从这些中生成子图:
travel_df_new.unstack(level=0).plot(kind='bar', subplots=True)
我想摆脱图表中的额外文本,因为它是多余的,并且也存在于其之外 travel_spending,CA travel_spending MA,travel_spending,NY
另外,我想让x轴(Ethinicity)的字体更清晰,并使其更暗。
使用matplotlib图表可以实现这些目的吗?
答案 0 :(得分:1)
您可以将legend=False
作为参数传递给数据框的.plot()
方法来删除图例:
travel_df_new.unstack(level=0).plot(kind='bar', subplots=True, legend=False)
(注意:在我看来,OP可能正在使用
ggplot
样式 使用matplotlib,但问题中未指定。基于 这个,我在这个例子中使用了ggplot
样式。)import matplotlib matplotlib.style.use('ggplot')
一个选项是在创建绘图后立即为当前轴设置tick_params。您可以使用plt.gca()
检索当前轴。通过调用轴对象的tick_params()
方法指定轴刻度的外观。下面的示例显示仅为x轴设置labelsize和labelcolor。
import matplotlib.pyplot as plt
travel_df_new.unstack(level=0).plot(kind='bar', subplots=True, legend=False)
plt.gca().tick_params(axis='x', labelsize='x-large', labelcolor='k')
上述方法仅适用于当前情节,但您也可以customize the appearance of elements in all matplotlib figures by setting values in the rcParams
dictionary。例如,这会更改xticks的颜色和大小:
import matplotlib.pyplot as plt
plt.rcParams['xtick.color']='k'
plt.rcParams['xtick.labelsize']='x-large'
travel_df_new.unstack(level=0).plot(kind='bar', subplots=True, legend=False)
这些设置产生以下图表:
看起来设置labelrotation
参数的功能将在未来版本的matplotlib中添加到tick_params()
。它在latest documentation中显示为一个选项,但在版本2.0中不可用。
在当前版本的matplotlib(< = 2.0.x)中,使用plt.setp()
设置旋转。
travel_df_new.unstack(level=0).plot(kind='bar', subplots=True, legend=False)
plt.setp(plt.xticks()[-1], size='x-large', color='k', rotation=45, ha='right')
此调用还可以设置标签的color
和size
,因此您可以通过此次调用覆盖所有刻度线格式。 ha
参数控制旋转标签的水平对齐方式,并接受值“left”,“center”和“right”。