- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 pandas 数据框,我想将其作为标签应用到散点图上的每个点。就数据而言,它是聚类数据,数据帧包含每个点的标签以及它属于哪个簇。将其投影到上面的散点图上会很有帮助。我尝试使用注释并出现错误。下面是我的散点图代码:
import hdbscan
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import umap
from sklearn.decomposition import PCA
import sklearn.cluster as cluster
from sklearn.metrics import adjusted_rand_score,
adjusted_mutual_info_score
se1= umap.UMAP(n_neighbors = 20,random_state=42).fit_transform(data_1)
cluster_1 = hdbscan.HDBSCAN(min_cluster_size = 15, min_samples =3).fit_predict(se1)
clustered = (cluster_1 >=0)
plt.scatter(se1[~clustered,0],se1[~clustered,1],c=(0.5,0.5,0.5), s=5, alpha =0.5)
plt.scatter(se1[clustered,0], se1[clustered,1], c=cluster_1[clustered],s=5, cmap='prism');
plt.show()
如何将 df1(960 行 x 1 列)作为标签添加到上面散点图中的所有点?
df1 = pd.DataFrame(cluster_1)
plt.annotate(cluster_3,se3[clustered,0], se3[clustered,1])
*错误:“回溯(最近一次调用最后一次): 文件“”,第 1 行,位于 文件“C:\Users\trivedd\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\pyplot.py”,第 2388 行,注释中 返回 gca().annotate(s, xy, *args, **kwargs) 文件“C:\Users\trivedd\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\axes_axes.py”,第 791 行,注释中 a = mtext.Annotation(s, xy, *args, **kwargs) 文件“C:\Users\trivedd\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\cbook\deprecation.py”,第 307 行,包装器中 返回 func(*args, **kwargs) 文件“C:\Users\trivedd\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\text.py”,第 2166 行,在 init 中 x, y = xy 文本ValueError:需要解压的值太多(预计为 2)”*
最佳答案
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import string
%matplotlib inline
df = pd.DataFrame({'x':np.random.rand(10),'y':np.random.rand(10),'label':list(string.ascii_lowercase[:10])})
df 看起来像这样
x y label
0.854133 0.020296 a
0.320214 0.857453 b
0.470433 0.103763 c
0.698247 0.869477 d
0.366012 0.127051 e
0.769241 0.767591 f
0.219338 0.351735 g
0.882301 0.311616 h
0.083092 0.159695 i
0.403883 0.460098 j
尝试:
ax = df.plot(x='x',y='y',kind='scatter',figsize=(10,10))
df[['x','y','label']].apply(lambda x: ax.text(*x),axis=1)
给你这个:
或者如果您想使用图例:
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import numpy as np
import string
%matplotlib inline
df = pd.DataFrame({'x':np.random.rand(50), 'y':np.random.rand(50),'label': [int(x) for x in '12345'*10]})
fig, ax = plt.subplots(figsize=(5,5))
ax = sns.scatterplot(x='x',y='y',hue = 'label',data = df,legend='full',
palette = {1:'red',2:'orange',3:'yellow',4:'green',5:'blue'})
ax.legend(loc='lower left')
关于python - 使用 pandas 数据框标记 matplotlib.pyplot.scatter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59431722/
从 matplotlib 库中我导入了 pyplot 模块。在该模块中有一个我使用过的函数plot()。现在我的问题是: 为什么plot()函数不在任何类中?如果它在任何类中,为什么我们不创建该类的任
过去我可以使用带有 for 循环的 matplotlib 来制作简单的动画,但现在已经有一段时间没用了。 标准答案是您必须打开交互模式和/或使用matplotlib.pyplot.draw()强制重绘
我正在为一个研究项目绘制一些天气数据。该图由 18 个时间步组成。我认为实现此目的的最佳方法是为每个时间步长创建一个新图,将其保存为文件,然后为下一个时间步长创建一个新图(使用 for 循环)。 例如
from matplotlib import pyplot as plt import matplotlib.pyplot as plt 以上说法是否等价?哪种形式更具可读性/更好? 最佳答案 尽管它
我希望负条朝下,正条朝上,x轴(0线)正好在它们之间通过。我试过了 chart = fig.bar(x, negative_data, width=35, color='r') ax2 = plt.g
所以我想要的是让我的 pyplot 以科学记数法记号。所以每个刻度看起来像 1x10^6 而不是 1,然后是轴上的 10^6。到目前为止,我能够做到这一点的唯一方法是手动将每个刻度标签设置为 r'$1
我正在尝试针对 datetime 的列表绘制一些数据pyplot 在 x 轴上的对象。然而,日期显示为标准格式,即 %Y-%m-%d %H:%M:%S (太长了)。我可以通过使用 strftime 创
假设我有这个代码: num_rows = 10 num_cols = 1 fig, axs = plt.subplots(num_rows, num_cols, sharex=True) for i
我正在尝试绘制带有拟合虚线的散点图。 plt.scatter(x, y, s=z, alpha=0.5) m, b = np.polyfit(x, y, 1) y = [(m*i) + b for i
我想在 pyplot 图形中包含一些文本,并且能够在不改变比例的情况下放大它。请参阅下面的情节示例、我希望发生的事情以及实际发生的事情。 重现错误的代码: import matplotlib.pypl
我想显示第一次显示时放大的图像,但仍然可以使用图形工具栏中的交互式“重置原始 View ”按钮缩小到全比例。裁剪是完全 Not Acceptable 。使用 plt.axis([x0, x1, y0,
我正在尝试绘制带有拟合虚线的散点图。 plt.scatter(x, y, s=z, alpha=0.5) m, b = np.polyfit(x, y, 1) y = [(m*i) + b for i
我想在 pyplot 图形中包含一些文本,并且能够在不改变比例的情况下放大它。请参阅下面的情节示例、我希望发生的事情以及实际发生的事情。 重现错误的代码: import matplotlib.pypl
我正在编写一门类(class),以便制作符合我的多种需求的情节人物!我特别关注每个 pyplot 用户都知道的线型的循环(颜色和线型),有 4 种线型('-'、'--'、'-.'、':')但有一个选项
我特别想让其中一行比另一行早结束。它们是按时间顺序排列的(逐月和逐年)。 months= [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] pass_2015 = [0
给定一个简单的负值列表:l = [0, -1, -1, -1, -10, -100] 使用标准方法 plt.hist(l) 可视化直方图的最快方法是什么? 我希望能够查看列表中的所有条目及其相对频率。
我有一个包含数据的文件,我将其分为三类。我想显示三个不同的“垃圾箱”,它们都只显示一个数字(该类别的平均值)。 import csv import matplotlib.pyplot as plt i
我不确定我的措辞是否正确,但我想做的是创建两个子图的图形,其中两个图有不同的限制,但它们的大小使得物理比例(如,y -人物高度每厘米的距离)是相同的。为了澄清起见,假设子图 1 显示从 -3 到 3
有谁知道为什么这段代码不能正确绘制框颜色。我希望每个组件都有不同的颜色,但它们都是黑色的,带有蓝色图例。 from numpy import array, zeros import matplotli
我在尝试使用 pyplot 标记数据时遇到了一场噩梦。 我目前正在绘制所有数据,如下所示:plt.plot(data)。 data 是一个数组,其中有一列是总成本,其他列是子成本 我想添加图例并适本地
我是一名优秀的程序员,十分优秀!