我有要在直方图中绘制的数据(DFE)
Nr O18ad
0 -4.268475
1 -4.265793
2 -4.263120
3 -4.260457
4 -4.257803
...
359995 -7.813345
359996 -7.821394
359997 -7.773479
359998 -7.807605
359999 -7.797769
这里我有这个代码片段:它是一个8部分图形的一部分,因此使用SUBFIGN函数
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
def plot_Diff(data):
fig = plt.figure(figsize=(10, 10))
ax =fig.add_subplot(423)
x= dfe['O18ad']
bins=[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1]
old_yticks = ax.get_yticks()
bin_counts, _, bars = plt.hist(x, bins, alpha=0.65, label='old', edgecolor='black', color='lightgrey')
new_max_tick = bin_counts.max()
old_yticks = ax.get_yticks()
new_ticks = old_yticks[old_yticks < new_max_tick][:-1]
new_ticks = np.append(new_ticks, new_max_tick)
ax.set_yticks(new_ticks)
manual_ticks=[0,20_000]
if manual_ticks is None:
old_yticks = ax.get_yticks()
new_ticks = old_yticks[old_yticks < new_max_tick][:-1]
new_ticks = np.append(new_ticks, new_max_tick)
else:
new_ticks = np.append(manual_ticks, new_max_tick)
ax.set_yticks(new_ticks)
plt.show()
我的输出如下所示:
现在我的问题是,如何更改X轴刻度,以便在右角自动设置最大值(在本例中为0),在左角自动设置显示的最小值(在本例中为-20)?
自动设置最大值和最小值很重要,因为我有大约100个直方图,我不能总是手动设置它们.