2017-02-11 6 views
2
from matplotlib import pyplot as plt 
import numpy as np 
import pandas as pd 
from matplotlib.ticker import MultipleLocator 
traindata = pd.read_csv("1.csv") 
X = traindata.iloc[:,0] 
X = np.array(X) 
X = X*100 
lr = list(range(0, 999)) 
lr = np.array(lr) 
m = [0,10,20,30,40,50,60,70,80,90,100] 
print(lr) 
lr = np.array(lr) 
plt.plot(lr,X,label='plot') 
plt.legend(loc='best') 
plt.xticks(np.arange(min(lr), max(lr)+11, 100.0)) 
plt.yticks(np.arange(min(m), max(m)+1, 10.0)) 
plt.minorticks_on() 
plt.ylabel('acc') 
plt.xlabel('iter') 
plt.show() 

По оси x 0 должно начинаться с угла. Как мне это сделать. Также, как установить все основные и второстепенные тики, которые будут отображаться внутри, а не снаружиMatplotlib должен начинаться с 0 по оси x, а основные и второстепенные тики должны указывать внутри осей.

ответ

1

Используйте plt.margins(x=0). Это установит маржу за пределами нарисованных точек до нуля.

Чтобы задать направление тиков, лучше всего использовать rcParams xtick.direction и ytick.direction, которые задают направление для полного скрипта.

import matplotlib.pyplot as plt 
plt.rcParams['xtick.direction'] = 'in' 
plt.rcParams['ytick.direction'] = 'in' 

plt.plot([2,1,3]) 

plt.minorticks_on() 
plt.margins(x=0) 

plt.show()