Вы можете использовать некоторую нелинейную зависимость ширины бункера, например
b = 5
bins = (np.linspace(np.min(y)**b, np.max(y)**b))**(1/b)
fig, ax = plt.subplots()
ax.hist(y, bins=bins, edgecolor="k")
Или вы можете определить ячейки, полностью настроенные, например. используйте ширину бункера от 10 до 60, а затем используйте ширину бункера от 5 до 90, наконец, используйте бункер с 1 до 100.
bins = np.concatenate((np.linspace(0,60,7),
np.linspace(60,90,7),
np.linspace(90,100,11)))
fig, ax = plt.subplots()
ax.hist(y, bins=bins, edgecolor="k")
Таким образом, в основном сценарий использования был инициировать запрос LiveData
после некоторого события - в данном случае намерение из BroadcastReceiver
- поэтому он обновляется. Я хотел поставить новые параметры для запроса, а затем заставить запрос работать.
То, что я не понял, это то, что это в основном против дизайна LiveData
. LiveData
это данные, на которые вы подписываетесь, клиент, который подписывается на эти данные, не влияет на них, он просто слушает их изменения. Так что проблема здесь с дизайном.
Чтобы получить новый запрос, вам обычно нужны либо новые данные (чтобы ваши наблюдения сработали), либо повторная подписка на LiveData
- более сложный и сложный подход, так как вам нужно управлять подписками, чтобы вы не делали не течь. Я решил получить новые данные с помощью вставки, как только я получу намерение. Если кто-то пожелает, я могу опубликовать фиксированный код для этого.