将matplotlib嵌入到C#的GUI中

需要在C#中绘制图表,图表还是可以拖动,放大缩小的那种,python的matplotlib包含了这些功能,所以想将matplotlib嵌入到C#的GUI中,我是C#新手,这是老师给的任务,求C#大佬们帮忙。
下图是matplotlib绘制图表的示例图:
图片说明

3个回答

C# 有 chart控件,不需要matplotlib,只要你算出数据就可以。

qq_16403141
月光下一只赏月的猪 谢谢,那chart控件做出来的图表能放大缩小嘛?我老师给我看的那个生成的图表可以放大缩小,图表里的曲线还可以上下左右拖动,就跟matplotlib生成的图表一样,我就不知道该怎么办了
大约 2 年之前 回复

你可以看看下面的教程
Matplotlib 教程 | 始终 https://liam0205.me/2014/09/11/matplotlib-tutorial-zh-cn/

无解。C#调用matplotlib只能独立弹窗,无法嵌入(严格来说可以通过特殊手段以图片格式嵌入,无交互功能)。
建议直接在C#使用OxyPlot或者LiveCharts,除了3D绘图之外,2D功能跟matplotlib相当。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
matplotlib所绘制的图像在全屏查看时比例失调,怎么解决?
将matplotlib嵌入pyqt5绘制自定义图像,但是在全屏状态下查看图像时,图像比例失调,请问有解决方案么?
关于Colab上Keras模型转TPU模型的问题
使用TPU加速训练,将Keras模型转TPU模型时报错,如图![图片说明](https://img-ask.csdn.net/upload/202001/14/1578998736_238721.png) 关键代码如下 引用库: ``` %tensorflow_version 1.x import json import os import numpy as np import tensorflow as tf from tensorflow.python.keras.applications import resnet from tensorflow.python.keras import callbacks from tensorflow.python.keras.preprocessing.image import ImageDataGenerator import matplotlib.pyplot as plt ``` 转换TPU模型代码如下 ``` # This address identifies the TPU we'll use when configuring TensorFlow. TPU_WORKER = 'grpc://' + os.environ['COLAB_TPU_ADDR'] tf.logging.set_verbosity(tf.logging.INFO) self.model = tf.contrib.tpu.keras_to_tpu_model(self.model, strategy=tf.contrib.tpu.TPUDistributionStrategy(tf.contrib.cluster_resolver.TPUClusterResolver(TPU_WORKER))) self.model = resnet50.ResNet50(weights=None, input_shape=dataset.input_shape, classes=num_classes) ```
matplotlib中add_subplot出错
以下代码是天文包astroML中的例子,运行时出错,调试发现是 一起 fig = plt.figure(figsize=(5, 1.66)) 与 ax = fig.add_subplot(131) 一起运行时出错。但不知道为什么? 还有很奇怪的时以前可以运行的代码,在运行完下面代码出错后,在运行也会出同样的错误 代码: ``` """ EM example: Gaussian Mixture Models ----------------------------------- Figure 6.6 A two-dimensional mixture of Gaussians for the stellar metallicity data. The left panel shows the number density of stars as a function of two measures of their chemical composition: metallicity ([Fe/H]) and alpha-element abundance ([alpha/Fe]). The right panel shows the density estimated using mixtures of Gaussians together with the positions and covariances (2-sigma levels) of those Gaussians. The center panel compares the information criteria AIC and BIC (see Sections 4.3.2 and 5.4.3). """ # Author: Jake VanderPlas # License: BSD # The figure produced by this code is published in the textbook # "Statistics, Data Mining, and Machine Learning in Astronomy" (2013) # For more information, see http://astroML.github.com # To report a bug or issue, use the following forum: # https://groups.google.com/forum/#!forum/astroml-general from __future__ import print_function import numpy as np from matplotlib import pyplot as plt from sklearn.mixture import GaussianMixture from astroML.datasets import fetch_sdss_sspp from astroML.utils.decorators import pickle_results from astroML.plotting.tools import draw_ellipse #---------------------------------------------------------------------- # This function adjusts matplotlib settings for a uniform feel in the textbook. # Note that with usetex=True, fonts are rendered with LaTeX. This may # result in an error if LaTeX is not installed on your system. In that case, # you can set usetex to False. if "setup_text_plots" not in globals(): from astroML.plotting import setup_text_plots setup_text_plots(fontsize=8, usetex=True) #------------------------------------------------------------ # Get the Segue Stellar Parameters Pipeline data data = fetch_sdss_sspp(cleaned=True) X = np.vstack([data['FeH'], data['alphFe']]).T # truncate dataset for speed X = X[::5] #------------------------------------------------------------ # Compute GaussianMixture models & AIC/BIC N = np.arange(1, 14) @pickle_results("GMM_metallicity.pkl") def compute_GaussianMixture(N, covariance_type='full', max_iter=1000): models = [None for n in N] for i in range(len(N)): print(N[i]) models[i] = GaussianMixture(n_components=N[i], max_iter=max_iter, covariance_type=covariance_type) models[i].fit(X) return models models = compute_GaussianMixture(N) AIC = [m.aic(X) for m in models] BIC = [m.bic(X) for m in models] i_best = np.argmin(BIC) gmm_best = models[i_best] print("best fit converged:", gmm_best.converged_) print("BIC: n_components = %i" % N[i_best]) #------------------------------------------------------------ # compute 2D density FeH_bins = 51 alphFe_bins = 51 H, FeH_bins, alphFe_bins = np.histogram2d(data['FeH'], data['alphFe'], (FeH_bins, alphFe_bins)) Xgrid = np.array(list(map(np.ravel, np.meshgrid(0.5 * (FeH_bins[:-1] + FeH_bins[1:]), 0.5 * (alphFe_bins[:-1] + alphFe_bins[1:]))))).T log_dens = gmm_best.score_samples(Xgrid).reshape((51, 51)) #------------------------------------------------------------ # Plot the results fig = plt.figure(figsize=(5, 1.66)) fig.subplots_adjust(wspace=0.45, bottom=0.25, top=0.9, left=0.1, right=0.97) # plot density ax = fig.add_subplot(131) ax.imshow(H.T, origin='lower', interpolation='nearest', aspect='auto', extent=[FeH_bins[0], FeH_bins[-1], alphFe_bins[0], alphFe_bins[-1]], cmap=plt.cm.binary) ax.set_xlabel(r'$\rm [Fe/H]$') ax.set_ylabel(r'$\rm [\alpha/Fe]$') ax.xaxis.set_major_locator(plt.MultipleLocator(0.3)) ax.set_xlim(-1.101, 0.101) ax.text(0.93, 0.93, "Input", va='top', ha='right', transform=ax.transAxes) # plot AIC/BIC ax = fig.add_subplot(132) ax.plot(N, AIC, '-k', label='AIC') ax.plot(N, BIC, ':k', label='BIC') ax.legend(loc=1) ax.set_xlabel('N components') plt.setp(ax.get_yticklabels(), fontsize=7) # plot best configurations for AIC and BIC ax = fig.add_subplot(133) ax.imshow(np.exp(log_dens), origin='lower', interpolation='nearest', aspect='auto', extent=[FeH_bins[0], FeH_bins[-1], alphFe_bins[0], alphFe_bins[-1]], cmap=plt.cm.binary) ax.scatter(gmm_best.means_[:, 0], gmm_best.means_[:, 1], c='w') for mu, C, w in zip(gmm_best.means_, gmm_best.covariances_, gmm_best.weights_): draw_ellipse(mu, C, scales=[1.5], ax=ax, fc='none', ec='k') ax.text(0.93, 0.93, "Converged", va='top', ha='right', transform=ax.transAxes) ax.set_xlim(-1.101, 0.101) ax.set_ylim(alphFe_bins[0], alphFe_bins[-1]) ax.xaxis.set_major_locator(plt.MultipleLocator(0.3)) ax.set_xlabel(r'$\rm [Fe/H]$') ax.set_ylabel(r'$\rm [\alpha/Fe]$') plt.show() ```
无法安装python的matplotlib包,急用求助
![图片说明](https://img-ask.csdn.net/upload/201912/06/1575640274_849869.png) 如图,求助如何安装matplotlib包?
请问大佬们,我用python编写了一个id3算法,如何让让用户自己输入数据来验证这些数据对应的结果?
#--coding:GBK # -*- coding: utf-8 -*- #pip install matplotlib from math import log ##创建数据集 def createDataSet(): """ 创建数据集 """ dataSet = [['青年', '否', '否', '一般', '拒绝'], ['青年', '否', '否', '好', '拒绝'], ['青年', '是', '否', '好', '同意'], ['青年', '是', '是', '一般', '同意'], ['青年', '否', '否', '一般', '拒绝'], ['中年', '否', '否', '一般', '拒绝'], ['中年', '否', '否', '好', '拒绝'], ['中年', '是', '是', '好', '同意'], ['中年', '否', '是', '非常好', '同意'], ['中年', '否', '是', '非常好', '同意'], ['老年', '否', '是', '非常好', '同意'], ['老年', '否', '是', '好', '同意'], ['老年', '是', '否', '好', '同意'], ['老年', '是', '否', '非常好', '同意'], ['老年', '否', '否', '一般', '拒绝'], ] featureName = ['年龄', '有工作', '有房子', '信贷情况'] # 返回数据集和每个维度的名称 return dataSet, featureName ##分割数据集 def splitDataSet(dataSet,axis,value): """ 按照给定特征划分数据集 :param axis:划分数据集的特征的维度 :param value:特征的值 :return: 符合该特征的所有实例(并且自动移除掉这维特征) """ # 循环遍历dataSet中的每一行数据 retDataSet = [] for featVec in dataSet: if featVec[axis] == value: reduceFeatVec = featVec[:axis] # 删除这一维特征,切片不包括axis reduceFeatVec.extend(featVec[axis+1:]) #把aixs去掉之后的列表前后拼在一起 retDataSet.append(reduceFeatVec) return retDataSet#把去掉axis之后的列表返回 ##计算信息熵 # 计算的始终是类别标签的不确定度 def calcShannonEnt(dataSet): """ 计算训练数据集中的Y随机变量的香农熵 :param dataSet: :return: """ numEntries = len(dataSet) # 实例的个数 labelCounts = {} for featVec in dataSet: # 遍历每个实例,统计标签的频次 currentLabel = featVec[-1] # 表示最后一列,,为什么要等与最后一列 # 当前标签不在labelCounts map中,就让labelCounts加入该标签 if currentLabel not in labelCounts.keys(): labelCounts[currentLabel] =0 labelCounts[currentLabel] +=1 shannonEnt = 0.0#初始化香农熵,香农熵越小纯度越高 for key in labelCounts: prob = float(labelCounts[key]) / numEntries shannonEnt -= prob * log(prob,2) # log base 2, return shannonEnt#返回列表的总香农熵 ## 计算条件熵 def calcConditionalEntropy(dataSet,i,featList,uniqueVals): """ 计算x_i给定的条件下,Y的条件熵 :param dataSet: 数据集 :param i: 维度i :param featList: 数据集特征列表 :param unqiueVals: 数据集特征集合 :return: 条件熵 """ ce = 0.0 for value in uniqueVals: subDataSet = splitDataSet(dataSet,i,value) prob = len(subDataSet) / float(len(dataSet)) # 极大似然估计概率 ce += prob * calcShannonEnt(subDataSet) #∑pH(Y|X=xi) 条件熵的计算 return ce ##计算信息增益 def calcInformationGain(dataSet,baseEntropy,i): """ 计算信息增益 :param dataSet: 数据集 :param baseEntropy: 数据集中Y的信息熵 :param i: 特征维度i :return: 特征i对数据集的信息增益g(dataSet | X_i) """ featList = [example[i] for example in dataSet] # 第i维特征列表 uniqueVals = set(featList) # 换成集合 - 集合中的每个元素不重复 newEntropy = calcConditionalEntropy(dataSet,i,featList,uniqueVals)#计算条件熵, infoGain = baseEntropy - newEntropy # 信息增益 = 信息熵 - 条件熵 return infoGain ## 算法框架 def chooseBestFeatureToSplitByID3(dataSet): """ 选择最好的数据集划分 :param dataSet: :return: """ numFeatures = len(dataSet[0]) -1 # 最后一列是分类 baseEntropy = calcShannonEnt(dataSet) #返回整个数据集的信息熵 bestInfoGain = 0.0 bestFeature = -1 for i in range(numFeatures): # 遍历所有维度特征 infoGain = calcInformationGain(dataSet,baseEntropy,i) #返回具体特征的信息增益 if(infoGain > bestInfoGain): bestInfoGain = infoGain bestFeature = i return bestFeature # 返回最佳特征对应的维度 def createTree(dataSet,featureName,chooseBestFeatureToSplitFunc = chooseBestFeatureToSplitByID3): """ 创建决策树 :param dataSet: 数据集 :param featureName: 数据集每一维的名称 :return: 决策树 """ classList = [example[-1] for example in dataSet] # 类别列表 if classList.count(classList[0]) == len(classList): # 统计属于列别classList[0]的个数 return classList[0] # 当类别完全相同则停止继续划分 if len(dataSet[0]) ==1: # 当只有一个特征的时候,遍历所有实例返回出现次数最多的类别 return majorityCnt(classList) # 返回类别标签 bestFeat = chooseBestFeatureToSplitFunc(dataSet)#最佳特征对应的索引 bestFeatLabel = featureName[bestFeat] #最佳特征 myTree ={bestFeatLabel:{}} # map 结构,且key为featureLabel del (featureName[bestFeat]) # 找到需要分类的特征子集 featValues = [example[bestFeat] for example in dataSet] uniqueVals = set(featValues) for value in uniqueVals: subLabels = featureName[:] # 复制操作 myTree[bestFeatLabel][value] = createTree(splitDataSet(dataSet,bestFeat,value),subLabels) return myTree # 测试决策树的构建 dataSet,featureName = createDataSet() myTree = createTree(dataSet,featureName) print(myTree)
如何将matplotlib中的annotate的标记从圆圈改成加号或点?
![plt 图片](http://photo.weibo.com/5141700111/talbum/detail/photo_id/4341712832740349) 统计一个数据的异常点,用箱型图分析,异常点标注的是用圆圈,因为有几个值几乎重叠,圆圈看着太大了,看了官方文档也找不到在哪里改标注,不懂哪里修改成'+'。 ``` #-*- coding: utf-8 -*- import pandas as pd catering_sale = r'C:\Users\81284\OneDrive\python datamining\Python数据分析与挖掘实战\chapter3\demo\data\catering_sale.xls' #餐饮数据 data = pd.read_excel(catering_sale, index_col = u'日期') #读取数据,指定“日期”列为索引列 import matplotlib.pyplot as plt #导入图像库 plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 plt.figure() #建立图像 p = data.boxplot(return_type='dict') #画箱线图,直接使用DataFrame的方法 x = p['fliers'][0].get_xdata() # 'flies'即为异常值的标签 y = p['fliers'][0].get_ydata() y.sort() #从小到大排序,该方法直接改变原对象 #用annotate添加注释 #其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制。 #以下参数都是经过调试的,需要具体问题具体调试。 for i in range(len(x)): if i>0: plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i])) else: plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i])) plt.show() #展示箱线图 ```
python matplotlib作图时,提示缺少字体去哪找字体?
报错信息如下 ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572945467_472006.png) D:\Python37\lib\site-packages\matplotlib\backends\backend_agg.py:211: RuntimeWarning: Glyph 24635 missing from current font. font.set_text(s, 0.0, flags=flags) D:\Python37\lib\site-packages\matplotlib\backends\backend_agg.py:180: RuntimeWarning: Glyph 24635 missing from current font. font.set_text(s, 0, flags=flags) 字体无法正常显示 请问怎样修改?
用matplotlib作图时设置了x轴主副刻度,怎样旋转副刻度坐标?
用matplotlib作图时设置了x轴主副刻度,主刻度是年月日,副刻度是时分秒,想把副坐标标签旋转,怎么实现呢? 不旋转的话,坐标值会重叠,用plt.xticks(rotation=90)只能旋转主刻度坐标 ![图片说明](https://img-ask.csdn.net/upload/201912/19/1576759414_237846.png) ``` fig,ax = plt.subplots(figsize=(8,3),dpi=128) #把刻度线设置在图的里面 plt.rcParams['xtick.direction'] = 'in' plt.rcParams['ytick.direction'] = 'in' #设置x轴主刻度 ax.xaxis.set_major_locator(mdates.DayLocator()) ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d')) #设置x轴副刻度 ax.xaxis.set_minor_locator(mdates.HourLocator(interval=6)) ax.xaxis.set_minor_formatter(mdates.DateFormatter('%H:%M:%S')) ax.plot(jin_data['datetime'],jin_data['data'],linewidth=1,label='进水温度') ax.plot(hui_data['datetime'],hui_data['data'],linewidth=1,label='回水温度') ax.set(xlabel='时间',ylabel='温度(℃)') lengend = ax.legend(loc='best') ax.grid(linestyle='--',linewidth=0.5) plt.tick_params(labelsize=8) # 设置坐标字体大小 plt.xticks(rotation=90) plt.show() ```
为什么python3.8下载matplotlib总是不成功?
python3.8下载matplotlib模块时,总是出现以下错误 ERROR: Command errored out with exit status 1: 'c:\users\air\python\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\air\\AppData\\Local\\Temp\\pip-install-5ntug3if\\matplotlib\\setup.py'"'"'; __file__='"'"'C:\\Users\\air\\AppData\\Local\\Temp\\pip-install-5ntug3if\\matplotlib\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\air\AppData\Local\Temp\pip-record-rp63qqyg\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output. ![图片说明](https://img-ask.csdn.net/upload/201911/20/1574238491_785213.png) 有那位大神可以帮我看一下?
matplotlib绘制直方图不显示横坐标值
``` from matplotlib import pyplot as plt import matplotlib matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文 matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号 import numpy as np score_array = np.array(score_list) plt.hist(score_array, bins=10) plt.xlabel("区间") plt.ylabel("数量") plt.show() ``` ![图片说明](https://img-ask.csdn.net/upload/201910/15/1571106982_98227.png) 如图可见,直方图横坐标有一条黑线,百思不得其解,求大神解答,万分感谢
各位朋友好,请教ubuntu系统python3.4环境下安装matplotlib报错的解决办法
具体的问题是这样的: 我的系统是Ubuntu14.04 的64位系统,python3.4版本下,想使用matplotlib来做图。 由于matplotlib依赖numpy和python的图像库PIL,因此我先安装numpy和PIL然后,再安装matplotlib, 这里附上我的安装matplotlib的shell命令 #安装科学计算库numpy sudo pip3 install numpy #安装图像处理库PIL sudo apt-get install python3.4-dev -y sudo apt-get install libjpeg8-dev zlib1g-dev libfreetype6-dev -y sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib sudo apt-get install python3-pil #安装画图库matplotlib sudo pip3 install matplotlib 但是发现虽然安装成功(在python3的shell交互环境下, import matplotlib 是可以的),但是 执行如下语句 from matplotlib import pyplot as plt 报错: "/usr/local/lib/python3.4/dist-packages/matplotlib-1.5.1-py3.4-linux-x86_64.egg/matplotlib/backends/backend_gtk3.py", line 58, in <module> cursors.MOVE : Gdk.Cursor.new(Gdk.CursorType.FLEUR), TypeError: constructor returned NULL 希望各位朋友能指点一下,十分感谢
pycharm中matplotlib运行出现问题
![图片说明](https://img-ask.csdn.net/upload/201907/26/1564139533_92790.png) matplotlib版本与pycharm中配置的python版本一致 且Tools一栏中没有Python Scientific的菜单 ![图片说明](https://img-ask.csdn.net/upload/201907/26/1564149853_798004.png)
python3调用别人的opencv图片匹配程序报错
小白,调用别人python算法进行图片匹配报错。 代码: import cv2 from matplotlib import pyplot as plt import numpy as np import os import math def getMatchNum(matches,ratio): '''返回特征点匹配数量和匹配掩码''' matchesMask=[[0,0] for i in range(len(matches))] matchNum=0 for i,(m,n) in enumerate(matches): if m.distance<ratio*n.distance: #将距离比率小于ratio的匹配点删选出来 matchesMask[i]=[1,0] matchNum+=1 return (matchNum,matchesMask) path='D:/code/' queryPath=path+'yangben/' #图库路径 samplePath=path+'yuanjian/image1.jpg' #样本图片 comparisonImageList=[] #记录比较结果 #创建SIFT特征提取器 sift = cv2.xfeatures2d.SIFT_create() #创建FLANN匹配对象 FLANN_INDEX_KDTREE=0 indexParams=dict(algorithm=FLANN_INDEX_KDTREE,trees=5) searchParams=dict(checks=50) flann=cv2.FlannBasedMatcher(indexParams,searchParams) sampleImage=cv2.imread(samplePath,0) kp1, des1 = sift.detectAndCompute(sampleImage, None) #提取样本图片的特征 for parent,dirnames,filenames in os.walk(queryPath): for p in filenames: p=queryPath+p queryImage=cv2.imread(p,0) kp2, des2 = sift.detectAndCompute(queryImage, None) #提取比对图片的特征 matches=flann.knnMatch(des1,des2,k=2) #匹配特征点,为了删选匹配点,指定k为2,这样对样本图的每个特征点,返回两个匹配 (matchNum,matchesMask)=getMatchNum(matches,0.9) #通过比率条件,计算出匹配程度 matchRatio=matchNum*100/len(matches) drawParams=dict(matchColor=(0,255,0), singlePointColor=(255,0,0), matchesMask=matchesMask, flags=0) comparisonImage=cv2.drawMatchesKnn(sampleImage,kp1,queryImage,kp2,matches,None,**drawParams) comparisonImageList.append((comparisonImage,matchRatio)) #记录下结果 comparisonImageList.sort(key=lambda x:x[1],reverse=True) #按照匹配度排序 count=len(comparisonImageList) column=4 row=math.ceil(count/column) #绘图显示 figure,ax=plt.subplots(row,column) for index,(image,ratio) in enumerate(comparisonImageList): ax[int(index/column)][index%column].set_title('Similiarity %.2f%%' % ratio) ax[int(index/column)][index%column].imshow(image) plt.show() 报错信息: Traceback (most recent call last): File "sift7.py", line 55, in <module> ax[int(index/column)][index%column].set_title('Similiarity %.2f%%' % ratio) TypeError: 'AxesSubplot' object does not support indexing 求大神指点。
在使用anconda的matploylib时出现"namespace这样的错误,请问是什么原因?该如何解决?
在我的电脑上运行一下代码时报错: 代码 ``` import matplotlib.pyplot as plt squres=[1,4,9,16,25] plt.plot(squres) plt.show( ) ``` 这是报错: ![图片说明](https://img-ask.csdn.net/upload/202001/03/1578042212_463527.png) 在别人的电脑上运行(同样的代码)结果: ![图片说明](https://img-ask.csdn.net/upload/202001/03/1578042322_446180.jpg) 请问该怎么解决?什么原因?报错是什么意思呢?
小白用python编写的爬虫小程序突然失效,是ip被封还是其他问题,求教?
# 编写的python小程序,爬取豆瓣评论,昨天还可以用,今天就失效了,试过很多种解决方法,都没有成功,求教? ## 可能的问题是ip被封或者cookies? 主程序 ``` # -*- coding: utf-8 -*- import ReviewCollection from snownlp import SnowNLP from matplotlib import pyplot as plt #画饼状图 def PlotPie(ratio, labels, colors): plt.figure(figsize=(6, 8)) explode = (0.05,0) patches,l_text,p_text = plt.pie(ratio,explode=explode,labels=labels,colors=colors, labeldistance=1.1,autopct='%3.1f%%',shadow=False, startangle=90,pctdistance=0.6) plt.axis('equal') plt.legend() plt.show() def main(): #初始url url = 'https://movie.douban.com/subject/30176393/' #保存评论文件 outfile = 'review.txt' (reviews, sentiment) = ReviewCollection.CollectReivew(url, 20, outfile) numOfRevs = len(sentiment) print(numOfRevs) #print(sentiment) positive = 0.0 negative = 0.0 accuracy = 0.0 #利用snownlp逐条分析每个评论的情感 for i in range(numOfRevs): # if sentiment[i] == 1: # positive += 1 # else: # negative += 1 print(reviews[i]+str(i)) sent = SnowNLP(reviews[i]) predict = sent.sentiments #print(predict,end=' ') if predict >= 0.5: positive += 1 if sentiment[i] == 1: accuracy += 1 else: negative += 1 if sentiment[i] == 0: accuracy += 1 #计算情感分析的精度 print('情感预测精度为: ' + str(accuracy/numOfRevs)) # print(positive,negative) #绘制饼状图 #定义饼状图的标签 labels = ['Positive Reviews', 'Negetive Reviews'] #每个标签占的百分比 ratio = [positive/numOfRevs, negative/numOfRevs] # print(ratio[0],ratio[1]) colors = ['red','yellowgreen'] PlotPie(ratio, labels, colors) if __name__=="__main__": main() ``` 次程序 ``` #!/usr/bin/python # -*- coding: utf-8 -*- from bs4 import BeautifulSoup import requests import csv import re import time import codecs import random def StartoSentiment(star): ''' 将评分转换为情感标签,简单起见 我们将大于或等于三星的评论当做正面评论 小于三星的评论当做负面评论 ''' score = int(star[-2]) if score >= 3: return 1 else: return 0 def CollectReivew(root, n, outfile): ''' 收集给定电影url的前n条评论 ''' reviews = [] sentiment = [] urlnumber = 0 headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36','Connection': 'close','cookie': 'll="108303"; bid=DOSjemTnbi0; _pk_ses.100001.4cf6=*; ap_v=0,6.0; __utma=30149280.1517093765.1576143949.1576143949.1576143949.1; __utmb=30149280.0.10.1576143949; __utmc=30149280; __utmz=30149280.1576143949.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=223695111.1844590374.1576143949.1576143949.1576143949.1; __utmc=223695111; __utmz=223695111.1576143949.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmt=1; __yadk_uid=iooXpNnGnHUza2r4ru7uRCpa3BXeHG0l; dbcl2="207917948:BFXaC6risAw"; ck=uFvj; _pk_id.100001.4cf6=4c11da64dc6451d3.1576143947.1.1576143971.1576143947.; __utmb=223695111.2.10.1576143949'} proxies = { "http":'http://121.69.46.177:9000',"https": 'https://122.136.212.132:53281'}#121.69.46.177:9000218.27.136.169:8085 122.136.212.132:53281 while urlnumber < n: url = root + 'comments?start=' + str(urlnumber) + '&limit=20&sort=new_score&status=P' print('要收集的电影评论网页为:' + url) # try: html = requests.get(url, headers = headers, proxies = proxies,timeout = 15) # # except Exception as e: # break soup = BeautifulSoup(html.text.encode("utf-8"),'html.parser') #通过正则表达式匹配评论和评分 for item in soup.find_all(name='span',attrs={'class':re.compile(r'^allstar')}): sentiment.append(StartoSentiment(item['class'][0])) #for item in soup.find_all(name='p',attrs={'class':''}): # if str(item).find('class="pl"') < 0: # r = str(item.string).strip() # reviews.append(r) comments = soup.find_all('span','short') for comment in comments: # print(comment.getText()+'\n') reviews.append(comment.getText()+'\n') urlnumber = urlnumber + 20 time.sleep(5) with codecs.open(outfile, 'w', 'utf-8') as output: for i in range(len(sentiment)): output.write(reviews[i] + '\t' + str(sentiment[i]) + '\n') return (reviews, sentiment) ``` ![图片说明](https://img-ask.csdn.net/upload/201912/12/1576149313_611712.jpg) 不设置参数proxies时错误如下:![图片说明](https://img-ask.csdn.net/upload/201912/12/1576149408_985833.jpg) 求教解决方法,感谢!!!!
python matplotlib 画两条折线图 其中一组数据有空值 如何处理?
python matplotlib 画两条折线图 其中一组数据有空值 如何处理? import csv from datetime import datetime from matplotlib import pyplot as plt filename = 'data.csv' with open(filename) as f: reader = csv.reader(f) header_row = next(reader) dates = [] temp1 = [] temp2 = [] for row in reader: time = row[1] + '-' + row[2] + '-' + row[3] current_date = datetime.strptime(time, "%Y-%m-%d") dates.append(current_date) tempm1 = int(float(row[7])) temp1.append(tempm1) tempm2 = int(row[28]) temp2.append(tempm2) fig = plt.figure(dpi=128, figsize=(10,6)) plt.plot(dates, temp1, c='red') plt.plot(dates, temp2, c='blue') plt.show() 报错: C:\Users\yo\AppData\Local\Programs\Python\Python37\python.exe F:/论文/data/compare/compare.py Traceback (most recent call last): File "F:/论文/data/compare/compare.py", line 26, in <module> tempm2 = int(row[28]) ValueError: invalid literal for int() with base 10: '20.075' Process finished with exit code 1 试过if 不为空值处理,然后数据对不齐了 我想要如果是空值图上就不显示 数据是有小数的所以就用int float 处理 请各位大神帮忙 谢谢!
应用SVR对负荷数据进行回归分析,测试集出来的数为一条直线?
应用SVR对负荷数据进行回归分析,测试集出来的数为一条直线? ``` import numpy as np from sklearn.svm import SVR import pandas as pd import matplotlib.pyplot as plt import xlrd # 打开指定路径中的xls文件,得到book对象 xls_file = "bb.xls" #打开指定文件 book = xlrd.open_workbook(xls_file) # 通过sheet索引获得sheet对象 sheet1 = book.sheet_by_index(0) # # 获得指定索引的sheet名 # sheet1_name = book.sheet_names()[0] # print(sheet1_name) # # 通过sheet名字获得sheet对象 # sheet1 = book.sheet_by_name(sheet1_name) # 获得行数和列数 # 总行数 nrows = sheet1.nrows #总列数 ncols = sheet1.ncols # 遍历打印表中的内容 row_list=[] for i in range(nrows): for j in range(ncols): cell_value = sheet1.cell_value(i, j) row_list.append (cell_value)#append函数的用处为往一个空矩阵添加元素 x=range(1,156) #绘制横坐标时间数据 #提取Excel表里的数据cell_value即是y值 x1=np.array(x) X=x1.reshape((len(x1),1))##reshape用于转置 y=np.array(row_list) X_train=np.array(X[0:123]) #训练集124 X_test=np.array(X[124:154]) y_train=np.array(y[0:123]) #测试集31 y_test=np.array(y[124:154]) svr_rbf=SVR(kernel='rbf',C=1e3,gamma=0.1) #使用 rbf核进行拟合 clf=svr_rbf.fit(X_train,y_train) #训练得到分类器#中括号的用途 y_rbf=clf.predict(X) #预测的输出 ax=plt.subplot(111) ax.scatter(X_train,y_train,c='r',label='train') #训练集真实值的散点图 ax.scatter(X_test,y_test,c='g',label='test') #测试集真实值的散点图 ax.plot(X,y_rbf,c='b',label='RBF model') #训练集的拟合结果 #测试集的结果为一常值,是因为数据集未进行归一化处理 plt.xlabel('day') plt.ylabel('target') plt.title('Support Vector Regression') plt.legend() plt.show() 程序运行结果如下: ```![图片说明](https://img-ask.csdn.net/upload/201911/14/1573715524_788157.png) ``` 请各位大佬指点!! ``` ```
Python全局环境下sklearn包中缺失Imputer函数
系统win10 64位,python版本3.7.4。 全局环境下,在我输入下载sklearn包的代码后,显示结果如下,包已经安装: ``` pip install sklearn Requirement already satisfied: sklearn in e:\python\lib\site-packages (0.0) Requirement already satisfied: scikit-learn in e:\python\lib\site-packages (from sklearn) (0.22) Requirement already satisfied: numpy>=1.11.0 in e:\python\lib\site-packages (from scikit-learn->sklearn) (1.17.4) Requirement already satisfied: scipy>=0.17.0 in e:\python\lib\site-packages (from scikit-learn->sklearn) (1.3.3) Requirement already satisfied: joblib>=0.11 in e:\python\lib\site-packages (from scikit-learn->sklearn) (0.14.1) ``` 然而在使用sklearn中的Imputer函数时,会出现报错: ``` >>> import numpy as np >>> import sklearn >>> from sklearn import preprocessing >>> from sklearn.preprocessing import Imputer Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: cannot import name 'Imputer' from 'sklearn.preprocessing' (E:\python\lib\site-packages\sklearn\preprocessing\__init__.py) ``` 利用dir()查看包内的函数,发现没有Imputer: ``` >>> dir(sklearn.preprocessing) ['Binarizer', 'FunctionTransformer', 'KBinsDiscretizer', 'KernelCenterer', 'LabelBinarizer', 'LabelEncoder', 'MaxAbsScaler', 'MinMaxScaler', 'MultiLabelBinarizer', 'Normalizer', 'OneHotEncoder', 'OrdinalEncoder', 'PolynomialFeatures', 'PowerTransformer', 'QuantileTransformer', 'RobustScaler', 'StandardScaler', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_csr_polynomial_expansion', '_data', '_discretization', '_encoders', '_function_transformer', '_label', 'add_dummy_feature', 'binarize', 'label_binarize', 'maxabs_scale', 'minmax_scale', 'normalize', 'power_transform', 'quantile_transform', 'robust_scale', 'scale'] ``` 但是在conda的base环境下,陆续安装numpy、scipy、matplotlib后,安装 scikit-learn包,就可以使用这个函数了。 我寻找了很久的解决方案,网上说的路径和Imputer相同的情况没有发生,请问大佬们这究竟是怎么回事儿啊
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
相关热词 c# 二进制截断字符串 c#实现窗体设计器 c#检测是否为微信 c# plc s1200 c#里氏转换原则 c# 主界面 c# do loop c#存为组套 模板 c# 停掉协程 c# rgb 读取图片
立即提问