plt.plot设置字体类别
时间: 2023-11-26 13:48:25 浏览: 66
可以使用plt.rcParams来设置字体类别,具体步骤如下:
```python
import matplotlib.pyplot as plt
# 设置字体为SimHei显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 绘制图形
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
# 显示图形
plt.show()
```
在上述代码中,我们使用plt.rcParams['font.sans-serif'] = ['SimHei']将字体设置为SimHei,从而实现了中文显示。如果需要设置其他字体,只需要将SimHei替换为其他字体即可。
相关问题
import numpy as np from sklearn.cluster import MiniBatchKMeans from sklearn.datasets import load_iris from sklearn import preprocessing import matplotlib.pyplot as plt from pylab import mpl from sklearn.cluster import KMeans from sklearn.metrics import silhouette_score from scipy.spatial.distance import cdist # 设置显示中文字体 mpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置正常显示符号 mpl.rcParams["axes.unicode_minus"] = False np.random.seed(5) iris = load_iris() X = iris.data y = iris.target min_max_scaler = preprocessing.MinMaxScaler() X_minmax = min_max_scaler.fit_transform(X) batch_size = 15 num_cluster = 3 clf = MiniBatchKMeans(n_clusters=num_cluster, batch_size=batch_size, init='random') clf.fit(X_minmax) centers = clf.cluster_centers_ pre_clu = clf.labels_ vmarker = {0: '^', 1: 's', 2: 'D', } mValue = [vmarker[i] for i in pre_clu] for _marker, _x, _y in zip(mValue, X_minmax[:, 1], X_minmax[:, 2]): plt.scatter(_x, _y, marker=_marker,c='grey') plt.scatter(centers[:, 1], centers[:, 2], marker='*',s=200,c='black') plt.show() #手肘法则最佳k值 def sse_k(): K = range(1, 10) sse_result = [] for k in K: kmeans = KMeans(n_clusters=k) kmeans.fit(iris.data) sse_result.append(sum(np.min(cdist(iris.data, kmeans.cluster_centers_, 'euclidean'), axis=1)) / iris.data.shape[0]) plt.plot(K, sse_result, 'gx-') plt.xlabel('k') plt.ylabel(u'平均畸变程度') plt.title(u'肘部法则确定最佳的K值') plt.show() # 轮廓系统法最佳k值 def sc_k(): K = range(2, 10) score = [] for k in K: kmeans = KMeans(n_clusters=k) kmeans.fit(iris.data) score.append(silhouette_score(iris.data, kmeans.labels_, metric='euclidean')) plt.plot(K, score, 'r*-') plt.xlabel('k') plt.ylabel(u'轮廓系数') plt.title(u'轮廓系数确定最佳的K值') plt.show() sse_k() sc_k()
这段代码实现了对 iris 数据集进行聚类分析的功能。具体来说,它使用了 MiniBatchKMeans 算法对 iris 数据进行聚类,并使用了肘部法则和轮廓系数法来确定最佳的聚类数量 k。
首先,代码将 iris 数据集导入,然后进行了归一化处理。接着,使用 MiniBatchKMeans 算法对归一化后的数据进行聚类,得到聚类中心和每个数据点所属的聚类类别。最后,使用 matplotlib 绘制聚类散点图,其中每个数据点的颜色、形状表示它所属的聚类类别,聚类中心用星号标出。
在绘制完聚类散点图之后,代码使用肘部法则和轮廓系数法来确定最佳的聚类数量 k。具体来说,肘部法则使用 SSE(Sum of Squared Error)来度量聚类的有效性,它的基本思想是随着聚类数量 k 的增加,SSE 会逐渐减小,但当 k 增加到一定程度时,SSE 的下降速度会明显放缓,这个拐点就是肘部,对应的 k 值就是最佳的聚类数量。轮廓系数法则使用轮廓系数来度量聚类的有效性,它的基本思想是聚类效果越好,同一聚类类别内部的数据点越紧密,不同聚类类别之间的数据点越分散,因此轮廓系数的取值范围在 [-1, 1] 之间,越接近 1 表示聚类效果越好,对应的 k 值就是最佳的聚类数量。肘部法则和轮廓系数法都是常用的聚类分析方法。
总之,这段代码实现了对 iris 数据集进行聚类分析的功能,并使用了肘部法则和轮廓系数法来确定最佳的聚类数量 k。
#加载情感分析模块 from snownlp import SnowNLP #from snownlp import sentiment import pandas as pd import matplotlib.pyplot as plt #读取文本数据 df=pd.read_excel('京东华为评论.xlsx') #提取所有数据 df1=df.iloc[:,0] print('将提取的数据打印出来:\n',df1) # 遍历每条评论进行预测 values=[SnowNLP(i).sentiments for i in df1] #输出积极的概率,大于0.5积极的,小于0.5消极的 #myval保存预测值 myval=[] good=0 bad=0 for i in values: if (i>=0.5): myval.append("正面") good=good+1 else: myval.append("负面") bad=bad+1 df['预测值']=values df['评价类别']=myval #将结果输出到Excel df.to_excel('京东华为评论.xlsx') rate=good/(good+bad) print('好评率','%.f%%' % (rate * 100)) #格式化为百分比 #作图 y=values plt.rc('font', family='SimHei', size=10) plt.plot(y, marker='o', mec='r', mfc='w',label=u'评价分值') plt.xlabel('用户') plt.ylabel('评价分值') # 让图例生效 plt.legend() #添加标题 plt.title('评论情感分析',family='SimHei',size=14,color='blue') plt.show()
这段代码是使用 SnowNLP 库进行情感分析,读取了一个 Excel 文件中的评论数据,然后遍历每条评论进行情感分析得到积极的概率,将预测结果保存到 Excel 文件中,并计算出好评率。最后使用 matplotlib 库作图,展示评价分值的分布情况。
具体步骤如下:
1. 导入所需的库,包括 SnowNLP、pandas 和 matplotlib。
2. 使用 pandas 库读取 Excel 文件中的评论数据。
3. 提取评论数据中的文本内容,遍历每条评论进行情感分析,得到积极的概率。
4. 根据预测结果,将评论分为正面和负面两类,并将预测结果和评论类型保存到 Excel 文件中。
5. 计算好评率。
6. 使用 matplotlib 库作图,展示评价分值的分布情况。
注意事项:
1. 代码中使用了中文字符,需要注意编码格式是否正确。
2. 代码中使用了 SnowNLP 库进行情感分析,需要先安装该库,可以使用 pip install snownlp 命令进行安装。
3. 代码中读取 Excel 文件的路径需要根据实际情况进行修改。
4. 代码中作图时使用了中文字符,需要使用支持中文的字体。
阅读全文