Python 3.x Matplotlib的颜色是错误的
注意:这已经解决了,虽然我没有对代码做任何更改,但是图像现在神秘地以完美的颜色呈现出来 我正在使用Python3和Spyder接口制作绘图。我已经在Spyder终端和保存的图像PNG中查看了绘图。这两种颜色都表明颜色很难看 脚本中的简单行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
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()