去除条形图比例中的微小分数(熊猫/Python)
当我尝试使用去除条形图比例中的微小分数(熊猫/Python),python,pandas,histogram,Python,Pandas,Histogram,当我尝试使用pd.cut绘制柱状图(直方图)时,我在轴(从左侧)上添加了一个有趣(而且非常恼人!)0.001,使其从-1.001开始,而不是-1。问题是如何摆脱这种状况?(请参见图) 我的代码是: out_i = pd.cut(df, bins=np.arange(-1,1.2,0.2), include_lowest=True) out_i.value_counts(sort=False).plot.bar(rot=45, figsize=(6,6)) plt.tight_layout()
pd.cut
绘制柱状图(直方图)时,我在轴(从左侧)上添加了一个有趣(而且非常恼人!)0.001
,使其从-1.001
开始,而不是-1
。问题是如何摆脱这种状况?(请参见图)
我的代码是:
out_i = pd.cut(df, bins=np.arange(-1,1.2,0.2), include_lowest=True)
out_i.value_counts(sort=False).plot.bar(rot=45, figsize=(6,6))
plt.tight_layout()
使用df:
a
0 -0.402203
1 -0.019031
2 -0.979292
3 -0.701221
4 -0.267261
5 -0.563602
7 -0.454961
8 0.632456
9 -0.843081
10 -0.629253
11 -0.946188
12 -0.628178
13 -0.776933
14 -0.717091
15 -0.392144
16 -0.799408
17 -0.897951
18 0.255321
19 -0.641854
20 -0.356393
21 -0.507321
22 -0.698238
23 -0.985097
25 -0.661444
26 -0.751593
27 -0.437505
28 -0.413451
29 -0.798745
30 -0.736440
31 -0.672727
32 -0.807688
33 -0.087085
34 -0.393203
35 -0.979730
36 -0.902951
37 -0.454231
38 -0.561951
39 -0.388580
40 -0.706501
41 -0.408248
42 -0.377235
43 -0.283110
44 -0.517428
45 -0.949603
46 -0.268667
47 -0.376199
48 -0.472293
49 -0.211781
50 -0.921520
51 -0.345870
53 -0.542487
55 -0.597996
如果可以删除间隔的小数点,则生成间隔标签的自定义列表,并将其设置为绘图的
xticklabels
:
out_i = pd.cut(df['a'], bins=np.arange(-1,1.2,0.2), include_lowest=True)
intervals = out_i.cat.categories
labels = ['(%.1f, %.1f]' % (int(interval.left*100)/100, interval.right) for interval in intervals]
ax = out_i.value_counts(sort=False).plot.bar(rot=45, figsize=(6,6))
ax.set_xticklabels(labels)
plt.tight_layout()
其结果如下所示:
注意:这将始终输出半闭合间隔
(a,b)
。可以通过根据pd的参数使括号动态化来改进。cut
您是否完全想去掉x轴标签?我在轴上看不到0.001
。@Jantreenes,如果您注意到,x刻度从-1.001开始,而不是bins
指定的-1。我想要我的x tICK完全由bins
定义。此外,还有-2.22e-16
而不是0
。尝试pd.cut(…,include_loost=False)
。使用它,我得到以下间隔:[(-1.0,-0.8]<-0.8,-0.6]<-0.6,-0.4,-0.4]…(0.2,0.4,0.6]<(0.4,0.6,0.8)(0.8,1.0]
因此您需要从-1开始的左闭区间。right=False
。-2.22e-16
是浮点舍入误差(-1+5*0.2!=0)从绘图的第二个小数点开始删去所有内容可以接受吗?谢谢!但是当我有-1
和1
的精确值时会发生什么?这个绘图应该代表相关系数的分布,它们肯定会得到-1,1的值。@ArnoldKlein分布和实际的bins保持不变,只有更改的标签。因此-1的值将与-1,-0.8
bin相关联。哦,我明白了!我的错。当然,这是一个多么神奇的解决方案!谢谢!所以除了标签之外,没有任何变化。太棒了!