我使用的LineChart使用3种视图模式;每日,每月和每年。用户可以在这三者之间切换。所有这些模式都实现了基于日期的x轴,其数据集以毫秒为单位提供,格式化为特定的日期格式。
我将可见x范围最大值设置为6个条目,这意味着每日模式为6天,每月模式为6个月,年度模式为6年。最初,图表设置为以日常模式显示,结果按预期进行。用户切换到月模式然后切换回每日模式后,图表似乎根据设置为月模式的x范围进行缩放。因此它似乎放大到每月模式使用的级别。我记录了每个视图模式的最后一个范围和最后一个x值,并确保为每个视图模式设置了正确的值。
以下是我的所作所为。
`
#!/usr/bin/python3
# 2018.04.11 11:40:17 CST
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
xx, yy = np.meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
#h = plt.contourf(x,y,z)
plt.imshow(z)
plt.show()
这真的是 MPAndroidChart 库的问题,还是我可能会错过一些东西?
答案 0 :(得分:0)
更改以下代码:
switch (mode) {
case daily:
Utils.logd(rangedaily + " " + maxdaily + " " + mindaily);
chart.setVisibleXRangeMaximum(rangedaily);
chart.moveViewToX(maxdaily);
break;
case monthly:
Utils.logd(rangemonthly + " " + maxmonthly + " " + minmonthly);
chart.setVisibleXRangeMaximum(rangemonthly);
chart.moveViewToX(maxmonthly);
break;
case annual:
}
要
switch (mode) {
case daily:
Utils.logd(rangedaily + " " + maxdaily + " " + mindaily);
chart.resetViewPortOffsets();
chart.setVisibleXRangeMaximum(rangedaily);
chart.moveViewToX(maxdaily);
chart.invalidate();
break;
case monthly:
Utils.logd(rangemonthly + " " + maxmonthly + " " + minmonthly);
chart.resetViewPortOffsets();
chart.setVisibleXRangeMaximum(rangemonthly);
chart.moveViewToX(maxmonthly);
chart.invalidate();
break;
case annual:
}
答案 1 :(得分:0)
我遇到了同样的问题,并通过使用setVisibleXRange而不是setVisisbleXRangeMaximum解决了该问题。
尝试使用此:
chart.setVisibleXRange(rangedaily,rangedaily);