0

我有一个 ipython 笔记本绘制了一些有错误的数据,但是一些错误栏消失了。尽管我看不出这些值有什么特别之处,但还是会发生这种情况。下面是笔记本(对冗长的数据条目感到抱歉;我想不出另一种方法)。

import csv
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
%matplotlib inline
sns.set_style('white')

hc_8=[0.99081659425686,
 0.0035807724071579,
 0.0036486661148434,
 3.0547067251442e-06,
 0.0015136562002304,
 0.00034601911991988,
 2.3401520791956e-05,
 2.8030427194401e-06,
 4.1162970805351e-07,
 9.1710776665829e-06,
 3.9398815871864e-05,
 4.4231786885767e-06,
 3.0956459298453e-06,
 1.9419348974675e-06,
 2.379397685075e-06,
 1.0845508880187e-06,
 1.9124426053082e-06,
 4.7226066879174e-07,
 5.0716363115017e-07,
 1.1081894051419e-07,
 7.9416431283342e-08,
 1.6516817308667e-08,
 4.0083862850936e-10,
 4.8319821836969e-09,
 3.0879304060312e-09,
 5.5671357273294e-09,
 7.7901130726092e-09,
 4.5657640815054e-09,
 1.5315424299983e-09,
 5.0188592345427e-12,
 2.2580896397634e-16]

err=[1.3891436413513369e-05,
0.00022700473730327057,
0.00023565165709769125,
0.00022395042167019547,
0.00022520816982478156,
0.00021206820520727488,
0.00020883185838967071,
0.00022300539245990713,
0.00020263881266942361,
0.00023012223590876285,
0.00020523181468988652,
0.00021127475414694269,
0.0002141613950092029, 
0.00021797460228818743,
0.00020896650606930448,
0.00021276389358642863,
0.00020295741658211708,
0.00020859865995398271,
0.00020952491755289146,
0.00020778891525548087,
0.00020883041033686742,
0.00020857100040878364,
0.00021691461288560443,
0.00021097629480290188,
0.00021374762124668886,
0.00021762787011087484,
0.00020798570342631768,
0.00020122385574404927,
0.00021145231450991181,
0.00020765816085479546,
0.00020825571752454633,
]

est=[  0.99540256998784726,    
  0.059895785850035944,   
  0.060507793561101343,   
  0.0019710971494187042,  
  0.038830929139159573,   
  0.018463774904873824,   
  0.0046955069297555064,  
  0.0018584056664347954,  
  0.00063659331149786968, 
  0.003331948609242674,   
  0.0064292492371676117,  
  0.0019628802580232119,  
  0.0015988809382858425,  
  0.0012577120684287974,  
  0.0015627879286385835,  
  0.0011401786365524927,  
  0.0014221828073456471,  
  0.0005458833011298159,  
  0.00071437837062369601, 
  0.00050896558455221718, 
  0.00019130332782904246, 
  0.0002061834214904301,  
  0.00010039647103085978, 
  0.00012180387323482591, 
  0.00025158959610823355, 
  0.00018180584721990496, 
  0.00021304933054298641, 
  0.00034851765573331136, 
  0.00026406529377739186, 
  0.00030970220238261107, 
  0.00015124475822489244, 
]


plt.plot(range(31),np.sqrt(hc_8),marker="^",ls='none',ms=10,mew=0,color='g')

plt.errorbar(range(31),est,yerr=err,marker="s",ls='none',fillstyle='none',ms=9,mew=1.3,color='r')

plt.yscale('log') 
fig=plt.gcf()
fig.set_size_inches(15, 10)
plt.axis([-1,32,1e-5,1.1])

输出如下所示,注意缺少的错误栏(例如最后一个):

误差图

4

1 回答 1

0

万一有人路过这里:解决方法是更换

plt.yscale('log') 

plt.yscale('log', nonposy="clip") 
于 2015-09-02T17:03:37.190 回答