我正在使用 matplotlib 绘制散射图,只是简单地测试几个示例代码,但无法显示颜色。只显示灰色。例如:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
t = np.arange(100)
plt.scatter(x, y, c=t)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这与之前关于散点图和颜色映射的问题完全相同。查看执行结果:

我的设置有什么问题吗?我正在使用 Jupyter python 3.x 版本。
谢谢!
我想为数据中的每个点(3D)和标签提供标签(标签是字典中的键):
l = list(dictionary.keys())
#transform the array to a list
arrayx=arrayx.tolist()
arrayy=arrayy.tolist()
arrayz=arrayz.tolist()
#arrayx contains my x coordinates
ax.scatter(arrayx, arrayy, arrayz)
#give the labels to each point
for label in enumerate(l):
ax.annotate(label, ([arrayx[i] for i in range(27)],[arrayy[i]for i in range(27)],[arrayz[i] for i in range(27)]))
plt.title("Data")
plt.show()
Run Code Online (Sandbox Code Playgroud)
我的输入:
数组x:
[[0.7], [7.1], [7.5], [0.6], [0.5], [0.00016775708773695687]...]
Run Code Online (Sandbox Code Playgroud)
阵列:
[[0.1], [2], [3], [6], [5], [16775708773695687]...]
Run Code Online (Sandbox Code Playgroud)
数组z:
[1], [2], [3], [4], [5], [6]...]
Run Code Online (Sandbox Code Playgroud)
并为图中的每个点 3D 贴上标签
是否可以在 python 中绘制散点图,在给定比例下点的最小尺寸为 1 像素?即,当我缩放绘图时,点不应缩放,并且大小始终为 1 像素。
在 pyplot 中
plt.scatter(d3_transformed[:,0], d3_transformed[:,1], s=1)
Run Code Online (Sandbox Code Playgroud)
我还是这样胖点
> plot_data
cs w u
1 0 0.0 1.00000000
2 125 0.5 1.23818786
3 250 1.0 4.15500984
4 375 1.5 1.41931096
5 500 2.0 0.51660657
6 625 2.5 0.29800493
7 750 3.0 0.20846944
8 875 3.5 0.16441816
9 1000 4.0 0.14116564
10 1125 4.5 0.12890978
#Scatter PLot
p <- plot_ly(x=plot_data$cs,y=plot_data$w,z=plot_data$u)
p
Run Code Online (Sandbox Code Playgroud)
plot_data是具有三个变量的数据框..使用plot_ly函数可以获得3d散点图..如何对与曲面图查找矩阵相同的变量进行曲面图以及如何创建该矩阵。
我正在尝试使用 Matplotlib 制作一个简单的动画来检查我的模拟是否运行良好。我想看看两个粒子如何在 xy 平面上移动:如果代码有效,它们应该吸引并结束在同一点或在空间中接近。
我计算“for”循环内粒子的位置,每次获得位置时,我都会使用 plt.scatter(x, y) 绘制它们,其中 x 和 y 是时间 t = t + dt 时的位置。我在网上读到我可以在循环内编写 plt.pause(0.05) ,这将产生我正在寻找的简单动画。
我的代码示例如下:
import numpy as np
import matplotlib.pyplot as plt
for k in range(steps):
pos = computeNewPos(pos, vel, force)
plt.scatter(pos[0, 0], pos[0, 1], label = '1', color = 'r')
plt.scatter(pos[1, 0], pos[1, 1], label = '2', color = 'b')
plt.xlabel('X')
plt.ylabel('Y')
plt.pause(0.05)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这可行,但我得到的“动画”包含旧数据点,我只想看到更新的位置。这将使跟踪粒子的位置变得更加容易。如何“擦除”for 循环内每次运行的旧点?有没有办法在每次运行时清除框架?
我想使用 python 中的plotly 和特定标记颜色来绘制散点图。但当我成功做到这一点时,图例并不对应。现在,图例中的所有标签都具有相同的颜色(蓝色)。我希望图例用与代码中提到的相同颜色来表示数据的风险。像这样:
蓝色标记=中等低
绿色标记=中等
橙色标记=中等高
import plotly.express as px
import plotly.graph_objects as go
colorsIdx = {'Moderately Low': 'blue', 'Moderate': 'green', 'Moderately High': 'orange'}
cols = data['Risk'].map(colorsIdx)
fig = px.scatter(data, x="1_Yr_Return", y="Expense_Ratio", color='Risk')
fig.update_traces(marker=dict(size=12, color=cols), selector=dict(mode='markers'))
fig.show()
Run Code Online (Sandbox Code Playgroud)

我有一个 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()
Run Code Online (Sandbox Code Playgroud)
如何将 df1 (960 行 x 1 列)作为标签添加到上面散点图中的所有点?
df1 = pd.DataFrame(cluster_1)
plt.annotate(cluster_3,se3[clustered,0], se3[clustered,1])
Run Code Online (Sandbox Code Playgroud)
*错误:“回溯(最近一次调用):文件“”,第 1 行,文件“C:\Users\trivedd\AppData\Local\Continuum\anaconda3\lib\site-packages\matplotlib\pyplot.py”,第 2388 行,在注释中返回 gca().annotate(s, xy, *args, …
我试图在 matplotlib 中同时绘制真实情况和我的分类。
tsne目前,我仅在应用特征空间并使用以下代码添加边缘后绘制真实情况
from matplotlib.collections import LineCollection
cols=['rgbkm'[lbl] for lbl in list(data.y.cpu().numpy() - 1)]
lc = LineCollection(X_embedded[out_dict['edges']],linewidth=0.05)
fig = plt.figure()
plt.gca().add_collection(lc)
plt.xlim(X_embedded[:,0].min(), X_embedded[:,0].max())
plt.ylim(X_embedded[:,1].min(), X_embedded[:,1].max())
plt.scatter(X_embedded[:,0],X_embedded[:,1], c=cols)
Run Code Online (Sandbox Code Playgroud)
同时,我希望通过以下方式为每个顶点着色:
我有一个pm2_5数据帧数据,我使用matplotlib scatterplot. 我想在不同的y 值处插入多条水平线,我通过为每个不同的y值手动调用 '''ax.axhline''' 函数来实现。有没有办法让整个过程自动化?
# making a graph with delineated health levels of pm2.5 in the year 2015
fig, ax=plt.subplots(figsize=(10,7));
pm2_5.plot(kind='scatter',x='S_no',y='pm2_5',c='pm2_5',ax=ax, cmap='tab20b');
ax.axhline(y=150,linestyle ='--')
ax.axhline(y=100,linestyle ='--')
ax.axhline(y=200,linestyle ='--')
ax.axhline(y=300,linestyle ='--')
Run Code Online (Sandbox Code Playgroud)
我想为下面的数据框创建一个散点图:
df_sample.head(10)
duration distance speed
0 26.299999 3.569 8.1
1 6.000000 0.739 7.4
2 25.700001 2.203 5.1
3 34.400002 2.876 5.0
4 3.000000 0.656 13.1
5 29.299999 3.704 7.6
6 10.200000 2.076 12.2
7 4.000000 0.774 11.6
8 9.200000 1.574 10.3
9 10.800000 0.782 4.3
Run Code Online (Sandbox Code Playgroud)
用下面的代码就差不多完成了。我想根据速度向图中添加颜色条(黄色:最慢和蓝色:最快),最终我在fig.colorbar(ax=ax)最后一行出现错误。请指教:什么是mappable?
with plt.style.context('seaborn-ticks'):
fig, ax = plt.subplots(figsize = (10, 6))
ax.set_title('Relationship between Distance & Duration', fontdict={'fontsize': 18, 'fontweight': 'bold'}, loc='left', pad=20)
ax.scatter(x=df_sample.duration.values, y=df_sample.distance.values, c=df_sample.speed.values, cmap=cm.YlGnBu)
# remove top & right spines …Run Code Online (Sandbox Code Playgroud) scatter-plot ×10
matplotlib ×7
python ×7
python-3.x ×2
animation ×1
colorbar ×1
ggplot2 ×1
label ×1
plot ×1
plotly ×1
python-3.8 ×1
r ×1
r-plotly ×1