相关疑难解决方法(0)

如何在JavaScript中指定Math.log()的基础?

我需要一个logJavaScript函数,但它需要是基数10.我看不到任何列表,所以我假设它不可能.是否有任何数学向导知道这个解决方案?

javascript math logarithm

198
推荐指数
7
解决办法
6万
查看次数

合理优化的图表缩放

我需要制作一个具有优化的y轴最大值的图表.

我制作图表的当前方法只是使用所有图形的最大值,然后将其除以10,并将其用作网格线.我没有写.

更新注意:这些图表已更改.一旦我修复了代码,我的动态图就开始工作,使这个问题变得荒谬(因为这些例子不再有任何错误).我用静态图像更新了这些,但是一些答案引用了不同的值.记在脑子里. alt text http://i42.tinypic.com/nwzr5s.jpg 2月到目前为止,有12003到14003个入站电话.信息性,但丑陋.

我想避免看起来像猴子的图表想出y轴数字.

使用谷歌图表API有点帮助,但它仍然不是我想要的. 替代文字 数字很​​干净,但y值的顶部始终与图表上的最大值相同.此图表从0到1357进行缩放.我需要计算1400的正确值,这是有问题的.


我在这里抛出了rbobby对"好"数字的暗示,因为它解释得很好.

  • "漂亮"数字是具有3个或更少非零数字的数字(例如1230000)
  • 一个"漂亮"的数字与零数字相同或几个非零数字(例如1230不好,1200很好)
  • 最好的数字是3个零的倍数(例如"1,000","1,000,000")
  • 第二个最好的数字是多个3个零加2个零的数据(例如"1,500,000","1,200")

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所做的一些步骤,以使图表更加流行.

  1. 暂时将图表的最高值提高约5%(这样图表的最高点和图表区域的顶部之间总会有一些空间.我们希望99.9向上舍入到120)
  2. 找到5,6,7,8,9和10个网格线的最佳网格线位置.
  3. 找出这些数字中最低的.记住获取该值所需的网格线数.
  4. 现在您拥有最佳的图表高度.线条/条形图永远不会与图表顶部相对应,并且您具有最佳的刻度数.

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)

algorithm math charts

32
推荐指数
1
解决办法
8315
查看次数

具有最小刻度的图表的尼斯标签算法

我需要手动计算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.这里的值 - 当然 - 不是最优的,而且滴答非常难看.

有没有人知道问题的解决方案或有正式算法描述的提示?

java algorithm math charts

27
推荐指数
4
解决办法
1万
查看次数

图形轴的Tickmark算法

我正在寻找一种在轴上放置刻度线的算法,给定要显示的范围,显示它的宽度,以及测量刻度线的字符串宽度的功能.

例如,假设我需要在1e-6和5e-6之间显示以及以像素显示的宽度,算法将确定我应该将标记(例如)放在1e-6,2e-6,3e-6处,4e-6和5e-6.给定较小的宽度,可以确定最佳放置仅在偶数位置,即2e-6和4e-6(因为放置更多的标记将导致它们重叠).

智能算法将优先考虑10,5和2的倍数的标记.此外,智能算法将在零附近对称.

algorithm optimization paint

24
推荐指数
2
解决办法
2万
查看次数

如何自动计算轴刻度和间隔?

有谁知道我在哪里可以找到给出轴的一组值(日期)的算法我可以计算出合理的比例和刻度间隔?

algorithm graph

9
推荐指数
1
解决办法
2万
查看次数

图(图)算法

有没有人有一个很好的算法来计算轴最小值和最大值?

在为给定的一组数据项创建图表时,我希望能够给出算法:

  • 集合中的最大值(y)
  • 集合中的最小(y)值
  • 轴上出现的刻度线数量
  • 必须显示为勾号的可选值(例如,显示+ ve和-ve值时为零)

算法应该返回

  • 轴的最大值
  • 最小轴值(尽管可以从最大值,间隔大小和刻度数推断出来)
  • 间隔大小

刻度应该是规则的间隔应该是"合理的"尺寸(例如1,3,5,甚至可能是2.5,但不是更多的sig figs).

可选值的存在将使此偏斜,但如果没有该值,则最大项目应出现在前两个刻度线之间,最低值位于底部两个之间.

这是一个与语言无关的问题,但是如果有一个C#/.NET库,那将会粉碎;)

algorithm charts graph

5
推荐指数
1
解决办法
5010
查看次数

matplotlib绘制了太多的滴答声

我有一个很大的代码,可以输出多个图像。有时,情节看起来像这样(请参见下面的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)

python plot matplotlib

5
推荐指数
1
解决办法
3317
查看次数