相关疑难解决方法(0)

根据colormap设置线条颜色

我有一系列行存储在列表中,如下所示:

line_list = [line_1, line_2, line_3, ..., line_M]
Run Code Online (Sandbox Code Playgroud)

其中每个line_i是由两个子子列表组成的子列表,一个用于x坐标,另一个用于y坐标:

line_i = [[x_1i, x2_i, .., x_Ni], [y_1i, y_2i, .., y_Ni]]
Run Code Online (Sandbox Code Playgroud)

我也有一个line_list与花车相同长度的列表,:

floats_list = [0.23, 4.5, 1.6, ..., float_M]
Run Code Online (Sandbox Code Playgroud)

我想绘制每一行,给它一个颜色图中的颜色,并与floats_list列表中索引的位置相关.因此line_j它的颜色将由数字决定floats_list[j].我还需要在侧面显示一个颜色条

代码会喜欢这样的东西,除了它应该工作:)

import matplotlib.pyplot as plt

line1 = [[0.5,3.6,4.5],[1.2,2.0,3.6]]
line2 = [[1.5,0.4,3.1,4.9],[5.1,0.2,7.4,0.3]]
line3 = [[1.5,3.6],[8.4,2.3]]

line_list = [line1,line2,line3]
floats_list = [1.2,0.3,5.6]

# Define colormap.
cm = plt.cm.get_cmap('RdYlBu')

# plot all lines.
for j,lin in enumerate(line_list): 
    plt.plot(lin[0], lin[1], c=floats_list[j])

# Show colorbar.
plt.colorbar()

plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

5
推荐指数
1
解决办法
2353
查看次数

Matplotlib 的内置区间图

我正在尝试为多个条目绘制多个间隔。

我尝试使用循环来枚举条目,一次绘制一个间隔。

import matplotlib.pyplot as plt

intervals = [(1, 2), (1.1, 2.5), (1.2, 4), (1.5, 10), (1.7, 12)]

num_intervals = len(intervals)
viridis = plt.cm.get_cmap('viridis', num_intervals)

fig, ax = plt.subplots()
for idx, (min_int, max_int) in enumerate(intervals):
  ax.hlines(y=idx, xmin=min_int, xmax=max_int, colors=viridis(idx / num_intervals), label=idx)
ax.legend()
plt.yticks([], [])
plt.show()
Run Code Online (Sandbox Code Playgroud)

阴谋

我希望使用 matplotlib 的内置方法一次性绘制多个间隔。另外,我希望绘制图像中每个间隔的最小值和最大值。

我希望向行中添加最小值和最大值注释,如下所示: 最小值和最大值注释

python plot matplotlib

4
推荐指数
1
解决办法
4324
查看次数

网络x中基于边缘颜色的图例

有没有办法根据边缘颜色(而不是节点颜色)在 networkx 中创建图例?

这是我的图表:

plt.figure(figsize = (15, 10))
G = nx.from_pandas_dataframe(df, 'From', 'To', ['Order', 'Colors'])
edge_labels = nx.get_edge_attributes(G, 'Order')
nx.draw_networkx(G, with_labels = False, node_color = 'black', alpha = 0.5, node_size = 3, linewidths = 1, edge_color = df['Colors'], edge_cmap = 
plt.cm.Set2)
plt.show()
Run Code Online (Sandbox Code Playgroud)

其中,['Order']是边缘的描述符,['Color']是映射到 中每个值的唯一整数['Order'],它致力于基于 Set2 颜色图创建边缘颜色。

我可以使用以下内容获取边缘标签: edge_labels = nx.get_edge_attributes(G, 'Order') 但是如何将其放入图例中?

如果有帮助,我很乐意分享数据和完整代码!

python matplotlib legend networkx

1
推荐指数
1
解决办法
2538
查看次数

标签 统计

matplotlib ×3

python ×3

legend ×1

networkx ×1

plot ×1