Python 3.x Matplotlib的颜色是错误的

Python 3.x Matplotlib的颜色是错误的,python-3.x,matplotlib,plot,colors,Python 3.x,Matplotlib,Plot,Colors,注意:这已经解决了,虽然我没有对代码做任何更改,但是图像现在神秘地以完美的颜色呈现出来 我正在使用Python3和Spyder接口制作绘图。我已经在Spyder终端和保存的图像PNG中查看了绘图。这两种颜色都表明颜色很难看 脚本中的简单行 plt.plot(x1, beta.transpose()[x1], color = 'r', linewidth = 0.2) 红色显示为浅粉色。当我把“r”改为“k”得到一条黑线时,它是一条非常浅的灰色线。是否有人知道影响Matplotlib或Spyde

注意:这已经解决了,虽然我没有对代码做任何更改,但是图像现在神秘地以完美的颜色呈现出来

我正在使用Python3和Spyder接口制作绘图。我已经在Spyder终端和保存的图像PNG中查看了绘图。这两种颜色都表明颜色很难看

脚本中的简单行

plt.plot(x1, beta.transpose()[x1], color = 'r', linewidth = 0.2)
红色显示为浅粉色。当我把“r”改为“k”得到一条黑线时,它是一条非常浅的灰色线。是否有人知道影响Matplotlib或Spyder使用的Matplotlib的问题,这可能是原因之一

例如:

代码:

数据生成脚本logit_Data.py

#Logistic regression data and link function.

import numpy as np

#Define link function here
def g(z):
    g=1/(1+np.exp(-z))
    return g

#For producing y data values given true paramters theta and number of covariates
def logit_data(n,p, theta):
    #Define parameters

    #1)Number of covariates
    p_i = p+1  #with intercept
    p_i=np.int(p_i)

    #2) m as correct data type
    n=np.int(n)

    #4)Specify parameter valueas to be estimated
    theta=np.reshape(theta, (p_i,1))

    #5)Define distribution from which covariate values are drawn i.i.d., and initiate data values
    X=np.zeros((n,p_i))
    X[:,0]=1    #intercept
    mean=0
    sigma=1.5

    X[:,1:]=np.random.normal(mean,sigma,(n,p))


    #6)Produce y values treating y as a Bernoulli variable with p=g(X*theta)
    r=np.random.uniform(0,1,n)
    r=np.reshape(r, (len(r),1))
    htrue=g(X.dot(theta))
    y=htrue-r
    y[y>=0]=1
    y[y<0]=0

    return X, y

当设置
alpha=1
或增加线宽时,您是否仍会遇到同样的问题?您是否尝试过使用“红色”或其他颜色?您需要以某种方式使其可复制;或者至少显示输出的屏幕截图和导致不希望的输出的完整代码。@BenT我确实尝试过更改线宽。这不管用。我现在尝试将alpha设置为1。也不起作用。@AlessandroPeca我尝试过“红色”、“黑色”以及单个字母,但没有其他命名颜色的方法。当设置
alpha=1
或增加线宽时,您是否仍然遇到同样的问题?您是否尝试过“红色”或其他颜色?您需要以某种方式使其可复制;或者至少显示输出的屏幕截图和导致不希望的输出的完整代码。@BenT我确实尝试过更改线宽。这不管用。我现在尝试将alpha设置为1。也不行。@AlessandroPeca我试过“红色”、“黑色”以及单个字母,但没有其他命名颜色的方法。
#Script for producing y data from p covariates from a specified distribution, specified beta paraemters,
#and n data samples for logit link function.

import numpy as np
import matplotlib.pyplot as plt
from logit_data import logit_data
import pylab
import statsmodels.stats as sms
import statsmodels.api as sma
import csv

def figure2():
    #def MLE_logistic_function():
    #1)Sample and observation numbers
    samples = 30
    observations = 40000

    #2)Number of independent covariates
    p=299

    #3)True beta to be estimated (parameter values)
    nonzerosN=30
    beta1=np.append(np.full((1, nonzerosN),10),np.full((1,nonzerosN),-10), axis=1)
    print(np.shape(beta1))
    beta=np.append(beta1,np.zeros((1,p+1-2*nonzerosN)), axis=1)
    print(np.shape(beta))


    #4)#Initiate arrays to store estimates of beta (and errors) computed at specified sample numbers N
    #Betas=np.zeros((len(npowers),p+1))
    #Errors=np.zeros((len(npowers),p+1))


    #5)Obtain random covariate values from specified distribution, and corresponding y values using true beta
    #plus gaussian noise term.
    X,y = logit_data(observations,p,beta)


    logit = sma.Logit(y,X)
    result = logit.fit()

    print(result.summary())

    MLEcoefficients = result.params
    x1 = np.arange(0, nonzerosN,1)
    x2 = np.arange(nonzerosN, 2*nonzerosN,1)
    x3 = np.arange(2*nonzerosN, p+1,1)
    plt.scatter(index, MLEcoefficients, 0.2)
    plt.plot(x1, beta.transpose()[x1], color = 'black', linewidth = 0.2, alpha=1)
    plt.plot(x2, beta.transpose()[x2], color = 'black', linewidth = 0.2)
    plt.plot(x3, beta.transpose()[x3], color = 'black', linewidth = 0.2)
    plt.xlabel('Index')
    plt.ylabel('Coefficient values (true and fitted)')
    plt.savefig('MMLTfig2_p%s_o%d.png' %(p,observations))
    plt.show()

    return


figure2()