在python2中使用matplotlib渲染问题

时间:2017-04-11 10:38:18

标签: python python-2.7 matplotlib graphics

我需要一个程序来绘制矩阵中的平行线。这是我的python2代码:

SELECT
    [Company Name],
    [Designation],
    [comp id],
    [Employee Name]
FROM
(
    SELECT emp.[Emp ID],
        comp.[Company Name],
        design.[Designation],
        emp.[comp id],
        emp.[Employee Name],
        ROW_NUMBER() OVER (PARTITION BY emp.[Comp ID], emp.[Design ID] ORDER BY emp.[Comp ID] desc, emp.[Design ID] desc, emp.[Emp ID] desc) RowNum
    from employee as emp
        join designation as design on design.[Design ID]=emp.[Design ID]
        join company as comp on comp.[Comp ID]=emp.[Comp ID]
) a
WHERE RowNum <=2

制作的图片是: 没有理由为什么中间的块应该丢失。我放大了他们失踪的第一个区域,我发现这些点确实在那里:enter image description here

为了确保这些点应该是什么样子,在此之后的区域,原始图像确实呈现点:enter image description here

这是渲染问题还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

问题是,将1000个像素值放在370个屏幕像素上会产生什么结果。每个像素大约有3个值,两个蓝色,一个黄色。最终像素应该有哪种颜色?

你可以做的是在图像上使用插值和颜色图,颜色图显示0以上任何值的相同颜色。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors

X, Y, m, s = 500, 1000, 8, 200        
x = np.zeros((Y, X)) 
c = -m * Y 

for i in xrange(Y):
    for j in xrange(X):               
        k = 0                         
        while k * s < 2 * m * Y:
            if i == m * j + c + s * k:
                x[i][j] = 1
            k += 1

clist = ((0, "w"), (1./255, "crimson"), (1, "crimson"))
cmap = matplotlib.colors.LinearSegmentedColormap.from_list("n",clist)
plt.imshow(x, aspect='auto', cmap=cmap,interpolation="bilinear"); 
plt.colorbar()
plt.show() 

enter image description here