python matplotlib 画图整理_matplotlib 刷新plot-程序员宅基地

技术标签: python  

这里大部分参考了博主:https://blog.csdn.net/Notzuonotdied/article/details/77876080  的整理x结果

## plot 板块##

import matplotlib.pyplot as plt
import numpy as np

x=np.linspace(1,10,10)
y=x
y1=2*x**2+1
y2=2*x**3+1

# 使用figure()函数重新申请一个figure对象
# 注意,每次调用figure的时候都会重新申请一个figure对象
plt.figure()

plt.plot(x,y)

# 第一个参数表示的是编号,第二个表示的是图表的长宽
plt.figure(num = 3, figsize=(8, 5))

# 当我们需要在画板中绘制两条线的时候,可以使用下面的方法:
l1,= plt.plot(x, y2,label='bbb')
l2,= plt.plot(x, y1, 
         color='red',   # 线颜色
         linewidth=1.0,  # 线宽 
         linestyle='--',  # 线样式
         label='aaa'
        )
#首先不知道为啥非要加上上述的','其次如果后面指定了新的label,以新的为主
plt.legend(handles=[l1,l2],
           labels=[r'aaa',r'ddd'],
           loc='best')#loc:1,2,3,4,从右上角逆时针
#更多关于legend的可以查看文档https://matplotlib.org/users/legend_guide.html#creating-artists-specifically-for-adding-to-the-legend-aka-proxy-artists

# 设置轴线的lable(标签)
plt.xlabel("I am x")
plt.ylabel("I am y")

#设置取值参数范围:
plt.xlim((-1,2))
plt.ylim((1,3))

#设置坐标轴点的位置
new_ticks= np.linspace(-1,2,5)
plt.xticks(new_ticks)
#y 轴对应点加上我们想要的文字:加上$可以倾斜
plt.yticks([-2,-1.8,-1,1.22,5],
          [r'$really\ bad$',r'$bad$',r'normal','$good$','really good'])
#gca = 'get current axis' 主要是为了对接下来的一些东西做设定
ax=plt.gca()
#将右边和上面的边框颜色去掉:
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#设置x轴和y轴的显示位置:
ax.xaxis.set_ticks_position('bottom')#(指的是整个图的下面)
ax.yaxis.set_ticks_position('right')
#定义x,y轴在图像中坐标位置:
ax.spines['bottom'].set_position(('data',0))#'bottom'位于y=0
ax.spines['left'].set_position(('data',0.5))#'left'位于=1



#批注,显示交叉点
x0=1
y0=2*x0+1

plt.scatter(x0,y0,s=66,color='r')#s表示点的大小
plt.plot([x0,x0],[y0,0],'k-.',lw=2.5)
#设置关键提示信息
plt.annotate(r'$2x+1=%s$'%y0,
            xy=(x0,y0),
            xycoords='data',
            xytext=(+30,-30),
            textcoords='offset points',
            fontsize=16,
            #设置箭头:
             arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2')
    )

#用于显示文字:
plt.text(0,3,
        r'$This\ is\ a\ good\ idea.\ \mu\ \sigma_i$',
        fontdict={'size':16,'color':'g'})

plt.show()

 

## 条状图##  

import numpy as np
import matplotlib.pyplot as plt


mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

# the histogram of the data
n, bins, patches = plt.hist(x, 50, density=1, facecolor='g', alpha=0.75)


plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title('Histogram of IQ')
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

 

import matplotlib.pyplot as plt
import numpy as np

n = 12
X = np.arange(n)
Y1 = (1 - X/float(n)) * np.random.uniform(0.5, 1.0, n)
Y2 = (1 - X/float(n)) * np.random.uniform(0.5, 1.0, n)

plt.figure(figsize=(12, 8))
plt.bar(X, +Y1, facecolor='#9999ff', edgecolor='white')
plt.bar(X, -Y2, facecolor='#ff9999', edgecolor='white')

for x, y in zip(X,Y1):
    # ha: horizontal alignment水平方向
    # va: vertical alignment垂直方向
    plt.text(x, y+0.05, '%.2f' % y, ha='center', va='bottom')

for x, y in zip(X,-Y2):
    # ha: horizontal alignment水平方向
    # va: vertical alignment垂直方向
    plt.text(x, y-0.05, '%.2f' % y, ha='center', va='top')

# 定义范围和标签
plt.xlim(-.5, n)
plt.xticks(())
plt.ylim(-1.25, 1.25)
plt.yticks(())

plt.show()

 

##  subplot 板块##

import matplotlib.pyplot as plt
import numpy as np

plt.figure()

# 将整个figure分成两行三列
plt.subplot(2, 3, 1)
# 第一个参数表示X的范围,第二个是y的范围
plt.plot([0, 1], [0, 2])

#表示两行三列中的第一个位置,按照行先排序
plt.subplot(231)
plt.plot([0, 1], [0, 2])

plt.subplot(232)
plt.plot([0, 2], [0, 4])

plt.subplot(234)
plt.plot([0, 1], [0, 3])

plt.subplot(236)
plt.plot([0, 1], [0, 4])

plt.show()

 

 

 

 ###分格显示和主次坐标轴看原微博###

##箱线图板块##

参考:(作者:博观厚积       链接:https://www.jianshu.com/p/b2f70f867a4a)

boxes, 是25分位值和75分位值构成的box,
medians, 是中位值的横线, 每个median是一个Line2D对象
whiskers, 是指从box 到error bar之间的竖线.
fliers, 是指error bar线之外的离散点.
caps, 是指error bar横线.
means, 是均值的横线,




 

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
np.random.seed(2)  #设置随机种子
df = pd.DataFrame(np.random.rand(5,4),
columns=['A', 'B', 'C', 'D'])#先生成0-1之间的5*4维度数据,再装入4列DataFrame中
df.boxplot() #也可用plot.box()
plt.show()

f=df.boxplot(sym='r*',patch_artist=True,return_type='dict')
#没有return_type='dict' 会报错:TypeError: 'AxesSubplot' object is not subscriptable

for box in f['boxes']:
    # 箱体边框颜色
    box.set( color='#7570b3', linewidth=2)
    # 箱体内部填充颜色
    box.set( facecolor = '#1b9e77' )
for whisker in f['whiskers']:
    whisker.set(color='r', linewidth=2)
for cap in f['caps']:
    cap.set(color='g', linewidth=3)
for median in f['medians']:
    median.set(color='DarkBlue', linewidth=3)
for flier in f['fliers']:
    flier.set(marker='o', color='y', alpha=0.5)
plt.show()

 

#横向:
df.boxplot(sym='r*',vert=False,patch_artist=True,meanline=False,showmeans=True)
plt.show()

 

其中,sym='r*',表示异常点的形状,
vert=False,表示横向还是竖向(True),,
patch_artist=True,(上下四分位框内是否填充,True为填充)
meanline=False,showmeans=True,是否有均值线及其形状,meanline=True时,均值线也像中位数线一样是条红色线段,这样容易与中位数线混淆。
另外,还有其他参数,比如notch表示中间箱体是否缺口,whis为设置数据的范围,showcaps、showbox是否显示边框

 

more:http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.boxplot

 

涉及到的参数:

color:

   one of {'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'};

linewidth(lw):直接写数字

linstyle:'--','k-.'

       lineStyles = {'': '_draw_nothing', ' ': '_draw_nothing', '-': '_draw_solid', '--': '_draw_dashed', '-.': '_draw_dash_dot', ':': '_draw_dotted', 'None': '_draw_nothing'}

loc:'best',1,2,3,4

==========关闭图:===========

   clf() # 清图。
   cla() # 清坐标轴。
   close() # 关窗口

【e.g.】
fig = plt.figure() # 新图 0
plt.savefig() # 保存
plt.close('all') # 关闭图 0
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/angnuan123/article/details/82733256

智能推荐

用ncverilog跑仿真时,如何去除对特定路径的timing检查_tcheck-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏24次。我们在跑后仿时,有些路径可以不做timing check,比如同步器的第一个DFF,因为通常是对异步信号进行同步,同步器的第一个DFF通常可能出现setup或hold违例。通过以下两种方式可以实现: 方式1: ncverilog -input aaa.tcheck ... aaa.tcheck文件中: tcheck -off u_top...._tcheck

cocos2d-x by Example Beginner's Guide 第5章 Rocket Through_cocos2d-x by example beginner's guide second editi-程序员宅基地

文章浏览阅读1.1k次。废话少说,先上游戏截图。游戏里有几个重要的地方。1.向量知识。2.橡皮筋线的绘制。3.粒子系统。void LineContainer::draw () { switch (_lineType) { case LINE_NONE: break; case LINE_TEMP: ccDr_cocos2d-x by example beginner's guide second edition

LocalStorage存储JSON对象的问题 localStorage - 没有时间限制的数据存储_json对象放在localstorage中取出来有限制吗-程序员宅基地

文章浏览阅读960次。LocalStorage存储JSON对象的问题localStorage - 没有时间限制的数据存储 1 var arr=[1,2,3];2 localStorage.setItem("temp",arr); //会返回1,2,33 console.log(typeof localStorage.getItem("temp"));//string4 consol_json对象放在localstorage中取出来有限制吗

CNN详细解释 ——思考卷积神经网络(CNN)中各层意义_横向抑制-程序员宅基地

文章浏览阅读1.3w次,点赞8次,收藏33次。只是知道CNN是不够,我们需要对其进行解剖,继而分析不同部件存在的意义CNN的目的简单来说,CNN的目的是以一定的模型对事物进行特征提取,而后根据特征对该事物进行分类、识别、预测或决策等。在这个过程里,最重要的步骤在于特征提取,即如何提取到能最大程度区分事物的特征。如果提取的特征无法将不同的事物进行划分,那么该特征提取步骤将毫无意义。而实现这个伟大的模型的,是对CNN进行迭代训练。特征在图像中(举..._横向抑制

发现一个好的使用 golang 写的BBS 项目_golang bbs-程序员宅基地

文章浏览阅读1.7k次。前言本文的原文连接是: https://blog.csdn.net/freewebsys/article/details/103181608未经博主允许不得转载。博主地址是:http://blog.csdn.net/freewebsys1,关于bbs-gohttps://www.oschina.net/p/bbs-gobbs-go 是一款基于 Go 语言开发的论坛系统,采用前后端分..._golang bbs

shell中如何实现文本的逐行输出_cshell的cat某一行的信息-程序员宅基地

文章浏览阅读2.3w次,点赞12次,收藏11次。在Linux shell中,有时候需要输出多行文字,但是不希望一次性输出全部内容,而是希望能一行一行输出。那怎么实现呢?本文介绍了两种方法。_cshell的cat某一行的信息

随便推点

Flutter的重要依赖CocoaPods安装心得_flutter cocoapods-程序员宅基地

文章浏览阅读2.3k次。Mac版本10.15.7下安装的Flutter 13.14.25CocoaPods安装非常重要!报错如下:sudo gem install cocoapods/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin19/rbconfig.rb:229: warning: Insecure world writable dir /usr/local/sbin in PA..._flutter cocoapods

Xcode编译报错 std::(如std::__1::basic_string)_xcode .m文件无法识别 std::string-程序员宅基地

文章浏览阅读1.3k次。导入了 FaceBook的 FrameWOrk 出现了34个错误 ,需要导入系统库 libc ++ ,就没有错误了_xcode .m文件无法识别 std::string

python3 中 list 中的元素类型转换,由 str 转成 int_x_list = list(map(int, x_list))-程序员宅基地

文章浏览阅读2.6k次,点赞3次,收藏3次。# 把 x 中的变量类型由字符串变为 int x = [ '1', '2', '3' ] x = list(map(int, x)) _x_list = list(map(int, x_list))

计算机术语awage表示什么,计量经济学第3章计算机习题-程序员宅基地

文章浏览阅读912次。《计量经济学第3章计算机习题》由会员分享,可在线阅读,更多相关《计量经济学第3章计算机习题(11页珍藏版)》请在人人文库网上搜索。1、班级:金融学106班 姓名:丁涛 学号:C3.5 log(wage)=0.284+0.092educ+0.0041exper+0.022tenure 解:通过对例3.2进行“排除其他影响”练习,证实对OLS估计值做“排除其他影响”解释。(1)先将educ对exper..._b0+b1log(expend)+b2lnchprg+u

MUI Hbuilder设置模拟器运行APP项目-程序员宅基地

文章浏览阅读484次。1 安装hbuilder和夜神模拟器2 hbuilder 新建app项目3 hbuilder:运行-》 设置web服务器-》Hbuilder第三方安卓模拟器端口:620014 运行test_app5 运行结果:转载于:https://www.cnblogs.com/richerdyoung/p/6676748.html..._muiapp怎么运行

AD8571ARZ 单电源运算放大器-程序员宅基地

文章浏览阅读878次,点赞5次,收藏9次。AD8571ARZ 是由ADI公司(Analog Devices, Inc.)制造的一款高精度、低功耗、单片集成运算放大器。您可以在我提供的参考资源[1][2][3]中找到更详细的信息,包括数据表、功能描述、引脚图以及使用方法等。产品类型:Op Amps - Operational Amplifiers。CMRR - 共模抑制比:140 dB。PSRR - 电源抑制比:130 dB。GBP-增益带宽产品:1.5 MHz。Vos - 输入偏置电压 :1 uV。Ib - 输入偏流:1.5 nA。

推荐文章

热门文章

相关标签