我需要一个log
JavaScript函数,但它需要是基数10.我看不到任何列表,所以我假设它不可能.是否有任何数学向导知道这个解决方案?
我需要制作一个具有优化的y轴最大值的图表.
我制作图表的当前方法只是使用所有图形的最大值,然后将其除以10,并将其用作网格线.我没有写.
更新注意:这些图表已更改.一旦我修复了代码,我的动态图就开始工作,使这个问题变得荒谬(因为这些例子不再有任何错误).我用静态图像更新了这些,但是一些答案引用了不同的值.记在脑子里. alt text http://i42.tinypic.com/nwzr5s.jpg 2月到目前为止,有12003到14003个入站电话.信息性,但丑陋.
我想避免看起来像猴子的图表想出y轴数字.
使用谷歌图表API有点帮助,但它仍然不是我想要的.
数字很干净,但y值的顶部始终与图表上的最大值相同.此图表从0到1357进行缩放.我需要计算1400的正确值,这是有问题的.
我在这里抛出了rbobby对"好"数字的暗示,因为它解释得很好.
alt text http://i43.tinypic.com/21jc0no.png 我找到了使用Mark Ransom想法的修改版本获得我想要的结果的方法.
当得到刻度数时,Mark Ransom的代码确定了刻度之间的最佳间距.有时这个数字最终会超过图表中最高值的两倍,具体取决于您想要的网格线数量.
我正在做的是我用5,6,7,8,9和10个网格线(刻度线)运行Mark的代码,以找出哪些是最低的.值为23时,图表的高度为25,网格线为5,10,15,20和25.值为26时,图表的高度为30,网格线为5,10 ,15,20,25和30.网格线之间的间距相同,但它们中的更多.
所以这里只是简单地复制Excel所做的一些步骤,以使图表更加流行.
PHP:
function roundUp($maxValue){
$optiMax = $maxValue * 2;
for ($i = 5; $i <= 10; $i++){
$tmpMaxValue = bestTick($maxValue,$i);
if (($optiMax > $tmpMaxValue) and ($tmpMaxValue > ($maxValue + $maxValue * 0.05))){
$optiMax = $tmpMaxValue;
$optiTicks = $i;
}
}
return $optiMax; …
Run Code Online (Sandbox Code Playgroud) 我需要手动计算Ticklabels和Tickrange for charts.
我知道好标记的"标准"算法(参见http://books.google.de/books?id=fvA7zLEFWZgC&pg=PA61&lpg=PA61&redir_esc=y#v=onepage&q&f=false),我也知道这个Java实现.
问题是,使用这种算法,滴答声"太聪明"了.这意味着,该算法决定应显示多少刻度.我的要求是,总有5个Ticks,但这些当然应该是"漂亮的".天真的方法是获得最大值,除以5并乘以ticknumber.这里的值 - 当然 - 不是最优的,而且滴答非常难看.
有没有人知道问题的解决方案或有正式算法描述的提示?
我正在寻找一种在轴上放置刻度线的算法,给定要显示的范围,显示它的宽度,以及测量刻度线的字符串宽度的功能.
例如,假设我需要在1e-6和5e-6之间显示以及以像素显示的宽度,算法将确定我应该将标记(例如)放在1e-6,2e-6,3e-6处,4e-6和5e-6.给定较小的宽度,可以确定最佳放置仅在偶数位置,即2e-6和4e-6(因为放置更多的标记将导致它们重叠).
智能算法将优先考虑10,5和2的倍数的标记.此外,智能算法将在零附近对称.
有没有人有一个很好的算法来计算轴最小值和最大值?
在为给定的一组数据项创建图表时,我希望能够给出算法:
算法应该返回
刻度应该是规则的间隔应该是"合理的"尺寸(例如1,3,5,甚至可能是2.5,但不是更多的sig figs).
可选值的存在将使此偏斜,但如果没有该值,则最大项目应出现在前两个刻度线之间,最低值位于底部两个之间.
这是一个与语言无关的问题,但是如果有一个C#/.NET库,那将会粉碎;)
我有一个很大的代码,可以输出多个图像。有时,情节看起来像这样(请参见下面的MWE):
请注意,x轴上的刻度线几乎彼此重叠,这看起来很糟糕。
我的问题是:为什么matplotlib无法实现这一点,而只是绘制较少的滴答声(通常不会出现问题)?我该如何强制matplotlib以一般方式绘制较少的滴答声(即:我不是只寻求适用于该特定绘图的解决方案,这只是一个示例)?
MWE(如果代码看起来不必要地复杂,那是因为它只是较大代码中的一小部分)
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import random
def scatter_plot(x, y):
ax = plt.subplot(gs[0:2, 0:2])
plt.xlim(min(x), 0.00158)
plt.xlabel('$x$', fontsize=16)
plt.ylabel('$y$', fontsize=16)
ax.minorticks_on()
plt.scatter(x, y)
# Generate random data.
x = [random.random() / 100. for i in xrange(10000)]
y = [random.random() for i in xrange(10000)]
# Define size of output figure.
fig = plt.figure(figsize=(30, 25)) # create the top-level container
gs = gridspec.GridSpec(10, 12) # create a GridSpec object …
Run Code Online (Sandbox Code Playgroud) algorithm ×5
charts ×3
math ×3
graph ×2
java ×1
javascript ×1
logarithm ×1
matplotlib ×1
optimization ×1
paint ×1
plot ×1
python ×1