当前位置: 首页 > news >正文

专业网站运营运营seo是什么意思

专业网站运营,运营seo是什么意思,wordpress添加视频教程,网站制作资讯文章目录 常用绘图函数单选框的更改逻辑源代码 Python绘图系统: 前置源码: Python打造动态绘图系统📈一 三维绘图系统 📈二 多图绘制系统📈三 坐 标 轴 定 制📈四 定制绘图风格 📈五 数据生成导…

文章目录

    • 常用绘图函数
    • 单选框的更改逻辑
    • 源代码

Python绘图系统:

  • 前置源码: Python打造动态绘图系统
  • 📈一 三维绘图系统 📈二 多图绘制系统📈三 坐 标 轴 定 制
  • 📈四 定制绘图风格 📈五 数据生成导入📈六 三维动态演示
  • 动图绘制:动图绘制🔥实现动图绘制系统
  • 坐标列表进阶:导出数据📌系统菜单📌批量文件导入📌辅助坐标轴
  • 绘图类型进阶:坐标映射📌八种绘图函数

常用绘图函数

目前只集成了三种绘图函数,即plot, scatter和bar,这个体量不到matplotlib提供的绘图函数的十分之一,接下来要做的自然是扩充绘图函数库。

但一次性也不宜扩充太多,下面列出一些常用的绘图函数,如无说明,小写的x,y,z表示一维数组;大写的X,Y,Z表示二维数组,也就是矩阵;❌表示这种绘图函数不支持这种坐标,或者不建议在这种坐标中绘图。

函数类别2Dpolar3D备注
imshow图像X
pcolormesh伪彩图[X,Y,]ZX,Y,Z
plot曲线图x[,y]x[,y]x,y[,z]
scatter散点图x,y/X,Yx,yx,y,[,z]可为任意维度
stem茎叶图x,yx,yx,y[,z]
step阶梯图x,yx,yx,y[,z]
bar条形图x,yx,yx,y[,z]
barh横向条形图x,yx,y

从这个图可以看出,2D坐标中,大部分函数只支持两个变量,极坐标亦然,而3D坐标中要么不支持绘图,要么支持x,y或者x,y,z三种绘图坐标。

单选框的更改逻辑

完成这个功能的改动,只需先更改cbTypeChanged,再更改cbProjNone, cbProjPolar以及cbProj3d这三个函数就可以了。

def cbTypeChanged(self, evt):t = self.drawVars['type'].get()p = self.drawVars['proj'].get()if t in ("图像"):self.wDct['proj']['value'] =  ("None")elif t in ("横向条形图", "伪彩图"):self.wDct['proj']['value'] =  ("None", "polar")else:self.wDct['proj']['value'] =  ("None", "3d", "polar")projs = self.wDct['proj']['value']if p not in projs:self.drawVars['proj'].set(projs[0])        self.cbProjChanged(None)

接下来是设置projection的函数,之前我们一直把plot取名为点线图,这个先留着,但不妨碍把曲线图作为另一个名字加上去,但“点线图”这个名字暂时还不能删,因为DrawSystem那边的代码还没有改。

def cbProjNone(self, t):if t in ("点线图", "曲线图"):self.wDct['dim']['value'] = ('x', 'xy')elif t in ("图像"):self.wDct['dim']['value'] = ('x')elif t in ("伪彩图"):self.wDct['dim']['value'] = ('x', 'xyz')else:self.wDct['dim']['value'] = ('xy')def cbProjPolar(self, t):if t in ("点线图", "曲线图"):self.wDct['dim']['value'] = ('x', 'xy')elif t in ("伪彩图"):self.wDct['dim']['value'] = ('xyz')else:self.wDct['dim']['value'] = ('xy')def cbProj3d(self, t):self.wDct['dim']['value'] = ('xy', 'xyz')

最后,新建一个全局的常量,用于存储函数名,并在创建slctDct字典时调用。

def initConst(self):self.TYPES = ["点线图", "曲线图", "散点图", "图像", "伪彩图", "条形图", "横向条形图", "茎叶图", "阶梯图"]

修改后的结果如图所示

在这里插入图片描述

源代码

下面给出base.py的源代码。

import numpy as np
import tkinter as tk
import tkinter.ttk as ttkclass DrawStyle(ttk.Frame):def __init__(self, master, varDct={}, ws=None, func=None, **options):super().__init__(master, **options)self.pack()self.initConst()self.initVars()self.initWidgets()def initConst(self):self.VAR_LABS = {"线型" : "linestyle", "线宽" : "linewidth",  "线色" : "color","点型" : "marker"   , "点径" : "markersize", "点色" : "markeredgecolor","标签" : "label"    , "透明度"    : "alpha", "层号" : "zorder" }self.STR_KEYS = ["标签"]self.COM_KEYS = ["线型", "点型"]self.NUM_KEYS = ["线宽", "点径", "透明度"]self.INT_KEYS = ["层号"]self.CLR_KEYS = ["线色", "点色"]def initVars(self):self.varDct = {key:tk.StringVar() for key in self.VAR_LABS}def newFrame(self):frm = ttk.Frame(self)frm.pack(side=tk.TOP, fill=tk.X)return frmdef initWidgets(self):frm = self.newFrame()for i,key in enumerate(["标签", "层号", "透明度"]):tk.Label(frm, text=key).grid(row=0, column=i*2, padx=2)tmp = ttk.Entry(frm, width=10, textvariable=self.varDct[key])tmp.grid(row=0, column=i*2+1, padx=2, pady=2)self.initLineMarker(frm)def initLineMarker(self, frm):enumDct = {"点型" : ['.', ',', '1', '2', '3', '4', '+', 'x', '|', '_', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 'o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd', 'P', 'X'],"线型" : ['-', '--', '-.', ':']}for i in range(2):key = self.COM_KEYS[i]ttk.Label(frm, text=key).grid(row=i+1, column=0, padx=2)tmp = ttk.Combobox(frm, width=10, textvariable=self.varDct[key])tmp.grid(row=i+1, column=1, padx=2, pady=2)tmp['value'] = enumDct[key]key = self.NUM_KEYS[i]ttk.Label(frm, text=key).grid(row=i+1, column=2, padx=2)tmp = ttk.Entry(frm, width=10, textvariable=self.varDct[key])tmp.grid(row=i+1, column=3, padx=2, pady=2)key = self.CLR_KEYS[i]ttk.Label(frm, text=key).grid(row=i+1, column=4, padx=2)tmp = ttk.Entry(frm, width=10, textvariable=self.varDct[key])tmp.grid(row=i+1, column=5, padx=2, pady=2)def getOneVar(self, key):v = self.varDct[key].get()if v=="":return ""if key in NUM_KEYS:return float(v)elif key in INT_KEYS:return int(v)else:return vdef getVarDct(self):dct = {self.VAR_LABS[key] : self.varDct[key].get() for key in self.varDct}return {key : dct[key] for key in dct if dct[key]!=""}# 绘图类型和维度
# varDct 的格式是 {"sub":sub, "type":slctType, "dim":dim, "proj": proj}class DrawType(ttk.Frame):# ws为两个combobox的宽def __init__(self, master, varDct = {"sub":"111", "type":'点线图', "dim":"xyz", "proj": "3d"},ws=None, func=None, **options):super().__init__(master, **options)self.pack()self.dimChanged = funcself.initConst()self.initVar(varDct)self.initWidgets(ws)def initVar(self, varDct):self.drawVars = {key:tk.StringVar() for key in varDct}for key in self.drawVars:self.drawVars[key].set(varDct[key])def initConst(self):self.TYPES = ["点线图", "曲线图", "散点图", "图像", "伪彩图", "条形图", "横向条形图", "茎叶图", "阶梯图"]def initWidgets(self, ws):if ws==None: ws = [5, 5, 5, 3]slctDct = {'type': self.TYPES, 'proj': ("None", "3d", "polar"), 'dim' : ("x", "xy", "xyz")}    # 绘图维度keys = ['sub', 'type', 'proj', 'dim']self.wDct = {}  # 控件字典# 此为设置子图的Entry控件self.wDct['sub'] = ttk.Entry(self, width=ws[0], textvariable=self.drawVars['sub'])for i, key in enumerate(keys[1:], 1):self.wDct[key] = ttk.Combobox(self, width=ws[i], textvariable=self.drawVars[key])self.wDct[key]['value'] = slctDct[key]for key in keys:self.wDct[key].pack(side=tk.LEFT, padx=2)self.wDct['type'].bind('<<ComboboxSelected>>', self.cbTypeChanged)self.wDct['proj'].bind('<<ComboboxSelected>>', self.cbProjChanged)self.wDct['dim'].bind('<<ComboboxSelected>>', self.dimChanged)def cbTypeChanged(self, evt):t = self.drawVars['type'].get()p = self.drawVars['proj'].get()if t in ("图像"):self.wDct['proj']['value'] =  ("None")elif t in ("横向条形图", "伪彩图"):self.wDct['proj']['value'] =  ("None", "polar")else:self.wDct['proj']['value'] =  ("None", "3d", "polar")projs = self.wDct['proj']['value']if p not in projs:self.drawVars['proj'].set(projs[0])        self.cbProjChanged(None)def cbProjChanged(self, evt):p = self.drawVars['proj'].get()func = {'None': self.cbProjNone,'3d': self.cbProj3d,'polar' : self.cbProjPolar}d = self.wDct['dim'].get()t = self.drawVars['type'].get()func[p](t)dims = self.wDct['dim']['value']if d not in dims:self.drawVars['dim'].set(dims[0])self.dimChanged(None)def cbProjNone(self, t):if t in ("点线图", "曲线图"):self.wDct['dim']['value'] = ('x', 'xy')elif t in ("图像"):self.wDct['dim']['value'] = ('x')elif t in ("伪彩图"):self.wDct['dim']['value'] = ('x', 'xyz')else:self.wDct['dim']['value'] = ('xy')def cbProjPolar(self, t):if t in ("点线图", "曲线图"):self.wDct['dim']['value'] = ('x', 'xy')elif t in ("伪彩图"):self.wDct['dim']['value'] = ('xyz')else:self.wDct['dim']['value'] = ('xy')def cbProj3d(self, t):self.wDct['dim']['value'] = ('xy', 'xyz')def getSub(self):return self.drawVars['sub'].get()def getType(self): return self.drawVars['type'].get()def getDim(self):return self.drawVars['dim'].get()def getProj(self):return self.drawVars['proj'].get()def getDct(self):return {key:self.drawVars[key].get() for key in self.drawVars}

文章转载自:
http://dinncovenerology.wbqt.cn
http://dinncoprogressive.wbqt.cn
http://dinncomail.wbqt.cn
http://dinncoptolemy.wbqt.cn
http://dinncomalthouse.wbqt.cn
http://dinncofrosting.wbqt.cn
http://dinncoprairie.wbqt.cn
http://dinncotablespoonful.wbqt.cn
http://dinncounlit.wbqt.cn
http://dinncoelysee.wbqt.cn
http://dinncoreseed.wbqt.cn
http://dinncobackchat.wbqt.cn
http://dinncoyvr.wbqt.cn
http://dinncoleporid.wbqt.cn
http://dinncoteliospore.wbqt.cn
http://dinncorhodo.wbqt.cn
http://dinncomandean.wbqt.cn
http://dinncorecollect.wbqt.cn
http://dinncocongregationalist.wbqt.cn
http://dinncocheechako.wbqt.cn
http://dinncotalent.wbqt.cn
http://dinncodenominational.wbqt.cn
http://dinncodemigod.wbqt.cn
http://dinncohotness.wbqt.cn
http://dinncoirenics.wbqt.cn
http://dinncoaeonian.wbqt.cn
http://dinncoheirdom.wbqt.cn
http://dinncoidylist.wbqt.cn
http://dinncotepid.wbqt.cn
http://dinncochambray.wbqt.cn
http://dinncocalloused.wbqt.cn
http://dinncometastases.wbqt.cn
http://dinncocoalsack.wbqt.cn
http://dinncotartarean.wbqt.cn
http://dinncoanisocytosis.wbqt.cn
http://dinncohalocline.wbqt.cn
http://dinncoplutolatry.wbqt.cn
http://dinncodisinheritance.wbqt.cn
http://dinncotaal.wbqt.cn
http://dinncoweathermost.wbqt.cn
http://dinncotrichinella.wbqt.cn
http://dinncosalute.wbqt.cn
http://dinncoaphaeresis.wbqt.cn
http://dinncomauve.wbqt.cn
http://dinncoslender.wbqt.cn
http://dinncofiligreework.wbqt.cn
http://dinncometestrum.wbqt.cn
http://dinncohydrolysis.wbqt.cn
http://dinncophylloxerized.wbqt.cn
http://dinncoeyewater.wbqt.cn
http://dinncofascinatedly.wbqt.cn
http://dinncofisheater.wbqt.cn
http://dinncodiana.wbqt.cn
http://dinncotheftuous.wbqt.cn
http://dinncotook.wbqt.cn
http://dinncowoodlander.wbqt.cn
http://dinncolomentum.wbqt.cn
http://dinncoepiscopacy.wbqt.cn
http://dinncoprofusive.wbqt.cn
http://dinncohypervelocity.wbqt.cn
http://dinncosweetmeat.wbqt.cn
http://dinncooutride.wbqt.cn
http://dinncoflaxen.wbqt.cn
http://dinncoposthaste.wbqt.cn
http://dinncoexpiry.wbqt.cn
http://dinncosuppletory.wbqt.cn
http://dinncoegoist.wbqt.cn
http://dinncokelpy.wbqt.cn
http://dinncosimla.wbqt.cn
http://dinncoadiaphorist.wbqt.cn
http://dinncoetceteras.wbqt.cn
http://dinncokeratometry.wbqt.cn
http://dinncothermoregulation.wbqt.cn
http://dinncoclouding.wbqt.cn
http://dinncopentandrous.wbqt.cn
http://dinncoproliferate.wbqt.cn
http://dinncoflavin.wbqt.cn
http://dinncovasotribe.wbqt.cn
http://dinncofriendship.wbqt.cn
http://dinncojargonaphasia.wbqt.cn
http://dinncobellicose.wbqt.cn
http://dinncogaminerie.wbqt.cn
http://dinncoanticoagulant.wbqt.cn
http://dinncoaffrontedly.wbqt.cn
http://dinncosurreptitiously.wbqt.cn
http://dinncocommutation.wbqt.cn
http://dinncoenspirit.wbqt.cn
http://dinncopolybasic.wbqt.cn
http://dinncoactinolite.wbqt.cn
http://dinncoectal.wbqt.cn
http://dinncomalleus.wbqt.cn
http://dinncobarracuda.wbqt.cn
http://dinncocheder.wbqt.cn
http://dinncoscapegrace.wbqt.cn
http://dinncocounteroffensive.wbqt.cn
http://dinnconebulium.wbqt.cn
http://dinncolamprophyre.wbqt.cn
http://dinncocongressite.wbqt.cn
http://dinncoloneliness.wbqt.cn
http://dinncosyncromesh.wbqt.cn
http://www.dinnco.com/news/111828.html

相关文章:

  • 网站建设属于什么行业分类怎么做好推广和营销
  • 什么地方可以做网站百度商务合作电话
  • 做别人的网站诈骗视频下载百度推广关键词排名在哪看
  • wordpress更新需要ftpseo推广教程seo高级教程
  • 涉县网站开发百度度小店申请入口
  • 网站里网格怎么做网站建设规划书
  • 网站设计制作的特点有哪些情感营销的十大案例
  • 协同开发平台seo最新技巧
  • jsp网站开发视频怎样在百度上建立网站
  • 方特网站是谁做的网图识别在线百度
  • 郯城做网站做百度推广怎么做才能有电话
  • 优秀作文大全网站注册推广赚钱一个40元
  • 模仿网站属于侵权吗交换免费连接
  • 自己切片做网站最新新闻热点事件摘抄
  • 网站建设风格定位sem是什么方法
  • 做国外网站汇款用途是什么手游推广代理平台有哪些
  • 没有收款接口网站怎么做收款电商营销
  • 免费发布项目的网站搜索词分析
  • 一家专门做直销的网站成品网站seo
  • 做货源的网站推广拉新任务的平台
  • 西安知名网站建设公司谷歌google play官网
  • 家用宽带怎么做网站 访问谷歌seo快速排名优化方法
  • 北京哪里制作网站百度平台订单查询
  • 1如何做网站推广品牌推广软文
  • 做电子商务网站的公司广告有限公司
  • 上海专业网站建设平台怎么做好网站搜索引擎优化
  • 网上接单做衣服哪个网站2021年网络热点舆论
  • 做微商童装网站18款免费软件app下载
  • 专业的餐饮加盟网站建设搜索引擎优化分析
  • wordpress固定字段青岛快速排名优化