相关疑难解决方法(0)

使用matplotlib创建超过20种独特的图例颜色

我正在使用matplotlib在一个图上绘制20条不同的线.我使用for循环绘制并用其键标记每一行,然后使用图例功能

for key in dict.keys():
    plot(x,dict[key], label = key)
graph.legend()
Run Code Online (Sandbox Code Playgroud)

但是使用这种方式,图表在图例中重复了很多颜色.有没有办法确保使用matplotlib和超过20行为每条线分配一个独特的颜色?

谢谢

python matplotlib legend

46
推荐指数
4
解决办法
5万
查看次数

在matplotlib中带箭头的线图

我有一个线图,我想用箭头而不是线条绘制.也就是说,连续点对之间的线应该是从第一点到第二点的箭头.

我知道这个arrow功能,但这似乎只做单独的箭头.在我尝试使用它来完成整个情节之前,有没有更好的方法呢?

python plot matplotlib

26
推荐指数
1
解决办法
2万
查看次数

使用Python/Matplotlib基于色彩图绘制(极性)色轮

我试图用Python创建一个色轮,最好使用Matplotlib.以下工作正常:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

xval = np.arange(0, 2*pi, 0.01)
yval = np.ones_like(xval)

colormap = plt.get_cmap('hsv')
norm = mpl.colors.Normalize(0.0, 2*np.pi)

ax = plt.subplot(1, 1, 1, polar=True)
ax.scatter(xval, yval, c=xval, s=300, cmap=colormap, norm=norm, linewidths=0)
ax.set_yticks([])
Run Code Online (Sandbox Code Playgroud)

自己尝试创建色轮

然而,这种尝试有两个严重的缺点.

首先,当将结果图形保存为矢量(figure_1.svg)时,色轮包含(如预期)621种不同的形状,对应于绘制的不同(x,y)值.虽然结果看起来像一个圆圈,但事实并非如此.我更倾向于使用一个实际的圆,由几个路径点和它们之间的贝塞尔曲线定义,如例如matplotlib.patches.Circle.这在我看来是"正确"的方式,结果看起来更好(没有条带,更好的渐变,更好的抗锯齿).

第二个(相关地),最终绘制的标记(前面的最后几个2*pi)与前几个重叠.在像素渲染中很难看到,但如果你放大基于矢量的渲染,你可以清楚地看到最后一张光盘与前几张光盘重叠.

我尝试使用不同的标记(.|),但没有一个绕过第二个问题.

底线:我可以在Python/Matplotlib中绘制一个圆圈,它以适当的矢量/贝塞尔曲线方式定义,并且具有根据色彩图定义的边缘颜色(或者,失败,任意颜色渐变)?

python plot colors matplotlib scipy

17
推荐指数
2
解决办法
9605
查看次数

如何在Matplotlib中指定类似箭头的线条样式?

我想在Matplotlib中显示一组xy数据,以指示特定路径.理想情况下,linestyle会被修改为使用类似箭头的补丁.我创建了一个模型,如下所示(使用Omnigraphsketcher).好像我应该能够覆盖普通的一个linestyle声明('-','--',':'等),以这种效果.

请注意,我不想简单地用一个箭头连接每个数据点---实际数据点不是均匀间隔的,我需要一致的箭头间距.

在此输入图像描述

python matplotlib

13
推荐指数
2
解决办法
8121
查看次数

matplotlib - 控制线条集合的大小/大量的线条

与前一个我的问题类似,我想控制使用matplotlib绘制的线条的capstyle.但是,我有非常多的行,并且除了行集合之外的任何绘图都需要太长时间.是否有任何变通方法以通用方式控制行集合中的行的capstyle(或者,绘制大量Line2D行的超快速方式).例如,我尝试过使用matplotlib rc设置:

import matplotlib as mpl
mpl.rcParams['lines.solid_capstyle'] = 'round'
mpl.rcParams['lines.solid_joinstyle'] = 'round'
Run Code Online (Sandbox Code Playgroud)

但这似乎没有任何影响.来自docstring collections.py:

这些类并不意味着像它们的单个元素一样灵活(例如,您可能无法选择所有的线条样式),但它们对于常见用例来说是快速的(例如,大量的实线选择)

这解释了为什么我似乎无法控制各种参数,但我仍然想要这样做!我已经看过AGG后端的代码了(_backend_agg.cpp不是我真的理解它),看来line_cap和line_join是由gc.cap和控制的gc.join,其中gc来自GCAgg类.有谁知道如何从Python控制这个?我在这里问正确的问题吗?也许这是控制这些参数的更简单方法?

非常感谢任何帮助......我非常渴望得到这个工作,所以即使是疯狂的黑客也欢迎!

谢谢,

卡森

python lines matplotlib

7
推荐指数
2
解决办法
1371
查看次数

标签 统计

matplotlib ×5

python ×5

plot ×2

colors ×1

legend ×1

lines ×1

scipy ×1