使用Python matplotlib的混沌游戏的密度图?

时间:2015-05-15 06:04:51

标签: python matplotlib fractals

基本上我尝试做的只是通过IFS生成一组点,并使用颜色图来显示每个点的多样性。换句话说,如果我们假设一个颜色图,其中高值更黄,更低值更红,那么IFS重复产生的值将更黄。

我努力为此获得正确的结果。我尝试过的每一件事都会产生一个看起来很有趣的图像,但显然是不正确的,因为它与你从简单地绘制没有颜色映射的点得到的结果大相径庭。

以下是我熟悉的基本代码,没有失败的色彩映射尝试。我该怎么做才能得到合适的色彩图?

我认为,基本策略是制作一个矩阵'垫子。保持点的多重性并执行类似plt.imshow(xs,ys,c = mat.cmap =" ...")的操作。我尝试了不同的方法,但不断得出不正确的结果。

global $wpdb;
$query = "
    SELECT * FROM $wpdb->posts
    LEFT JOIN $wpdb->term_relationships ON
    ($wpdb->posts.ID = $wpdb->term_relationships.object_id)
    LEFT JOIN $wpdb->term_taxonomy ON
    ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
    WHERE $wpdb->posts.post_status = 'publish'
    AND $wpdb->term_taxonomy.taxonomy = 'category'
    AND $wpdb->term_taxonomy.term_id = $category_ids[0]
    AND $wpdb->posts.id < $post->ID
    ORDER BY id DESC limit 3";

$my_query = $wpdb->get_results($query);

if($my_query) {
    global $post;
    echo '<h3>Related Posts</h3><ul>';
    foreach($my_query as $key => $post) {
        //use setup postdata, it works only for variable named $post.

        setup_postdata($post); 
        //you can safely use template tags now.

        ?>
        <li>
            <div class="entry-header">
                <div class="header-l">
                    <h1 class="entry-title">
                        <a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
                    </h1>
                    <p class="datetime">
                        <?php twentytwelve_entry_meta(); ?>
                    </p>
                </div>
                <?php the_post_thumbnail(); ?>
            </div>


            <div class="entry-summary">
              <?php
                  $str_content = wp_trim_words($post->post_content);
                  $str_content = str_replace('[', '<', $str_content);
                  $str_content = str_replace(']', '>', $str_content);
                  echo $str_content;
              ?>
            </div>
        </li>
        <?php
    }
}

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,听起来你想使用2D直方图来获得点的密度,

H, x, y = np.histogram2d(xs,ys,bins=100)
X, Y = np.meshgrid(x[:-1],y[:-1],indexing='ij')
plt.pcolormesh(X,Y,H,alpha=0.8, cmap = plt.cm.YlOrRd_r)
plt.colorbar()

由此给出,

enter image description here

这是在散点图上绘制的透明色彩。 您还可以通过点处的值

为散点图着色
pc = some_fn_to_get_color_at_points(X, Y, H, xs, yx)
plt.scatter(xs,ys, s=.05, c=pc)