Tag: matplotlib

matplotlib:颜色条和文本标签

我想为热图创build一个颜色条图例,使标签位于每个离散颜色的中心。 请看下面的例子( 从这里借用 ) import matplotlib.pyplot as plt import numpy as np from matplotlib.colors import ListedColormap #discrete color scheme cMap = ListedColormap(['white', 'green', 'blue','red']) #data np.random.seed(42) data = np.random.rand(4, 4) fig, ax = plt.subplots() heatmap = ax.pcolor(data, cmap=cMap) #legend cbar = plt.colorbar(heatmap) cbar.ax.set_yticklabels(['0','1','2','>3']) cbar.set_label('# of contacts', rotation=270) # put the major ticks at the middle […]

条形图与python / matplotlib中的垂直标签

我正在使用matplotlib来生成(垂直)条形图。 问题是我的标签相当长。 有什么方法可以垂直显示它们,无论是在酒吧还是在酒吧上方或下方?

使用matplotlib为不同的分类级别绘制不同的颜色

我有这个数据框是由像(carat, price, color)variables组成的(carat, price, color)我想绘制一个price的散点图carat每种color ,这意味着不同的color有不同的颜色在情节。 用ggplot在R很容易: ggplot(aes(x=carat, y=price, color=color), #by setting color=color, ggplot automatically draw in different colors data=diamonds) + geom_point(stat='summary', fun.y=median) 我不知道如何在Python中使用matplotlib ? PS: 我知道辅助绘图软件包,比如ggplot for python seaborn和ggplot for python ,我不喜欢它们,只是想知道是否可以单独使用matplotlib来完成这个工作; P

matplotlib颜色条分散

我正在处理的数据有3个绘图参数:x,y,c。 如何为散点图创build自定义颜色值? 扩展这个例子,我试图做的: import matplotlib import matplotlib.pyplot as plt cm = matplotlib.cm.get_cmap('RdYlBu') colors=[cm(1.*i/20) for i in range(20)] xy = range(20) plt.subplot(111) colorlist=[colors[x/2] for x in xy] #actually some other non-linear relationship plt.scatter(xy, xy, c=colorlist, s=35, vmin=0, vmax=20) plt.colorbar() plt.show() 但结果是TypeError: You must first set_array for mappable

在matplotlib中更漂亮的默认绘图颜色

在matplotlib中使用的默认颜色(例如: http : //matplotlib.org/examples/pylab_examples/pie_demo.html )是一种简单和丑陋。 我也注意到,如果在一个绘图中绘制多于5-6个不同的系列,matplotlib会开始重复颜色。 我已经看到其他可视化软件包(其他语言,默认情况下)有一些华丽的图表,可以有5-6个不同的系列,只有一种颜色以不同的色调覆盖。 有没有人有一个很好的颜色设置在matplotlib中使用? 一种使matplotlib默认使用它的方法?

Matplotlib和Pyplot.close()不释放内存? – 后端相关的Qt4Agg

编辑:如果我明白更改后台matplotlib从'Qt4Agg'只是'聚',那么我能够运行我的代码没有错误。 我认为这是后端的错误? 我正在编写一些自动处理大量数据的代码。 代码首先parsing我的数据文件并存储所有相关的位。 然后我有不同的function来生成我需要的每个图表(大约有25个)。 但是,我不断遇到某种内存错误,我认为这是因为Matplotlib / PyPlot没有正确释放内存。 每个绘图函数都以pyplot.close(fig)命令结束,因为我只是想保存graphics而不是立即查看它们,所以不包含pyplot.show()。 如果我在解释器中分别运行绘图函数,那么我不会遇到任何问题。 但是,如果我做一个单独的函数,依次调用每个绘图函数,那么我会遇到“MemoryError:无法为path分配内存”。 有没有人遇到这样的问题? 这似乎与Matplotlib在循环绘制时耗尽内存有关,但pyplot.close()不能解决我的问题。 这是我的代码中典型的绘图function的样子: def TypicalPlot(self, title=None, comment=False, save=False, show=True): if title is None: title = self.dat.title fig = plt.figure() host = SubplotHost(fig, 111) fig.add_subplot(host) par = host.twinx() host.set_xlabel("Time (hrs)") host.set_ylabel("Power (W)") par.set_ylabel("Temperature (C)") p1, = host.plot(self.dat.timebase1, self.dat.pwr, 'b,', label="Power", markevery= self.skip) p2, = par.plot(self.dat.timebase2, […]

计算不规则间隔点密度的有效方法

我正在尝试生成地图叠加图像,以帮助识别热点,即地图上具有高密度数据点的区域。 我所尝试的方法都不足以满足我的需求。 注意:我忘记提及algorithm在低和高缩放情况(或低和高数据点密度)下都能正常工作。 我通过numpy,pyplot和scipy库来查看,最接近我能find的是numpy.histogram2d。 正如你在下面的图片中看到的,histogram2d的输出是比较粗糙的。 (每个图像包含覆盖热图的点以便更好地理解) 我的第二个尝试是迭代所有的数据点,然后计算热点值作为距离的函数。 这产生了一个更好看的形象,但它在我的应用程序中使用太慢。 由于它是O(n),所以它可以正常工作100点,但是当我使用我的30000点的实际数据集时会发生。 我最后的尝试是将数据存储在KDTree中,并使用最近的5个点来计算热点值。 这个algorithm是O(1),大数据集要快得多。 它还不够快,生成256×256位图需要大约20秒,我希望在1秒左右的时间内完成。 编辑 由6502提供的boxsum平滑解决scheme在所有缩放级别都能正常运行,比我的原始方法快得多。 Luke和Neil G提出的高斯滤波器解决scheme是最快的。 您可以看到下面的所有四种方法,总共使用1000个数据点,在3倍缩放下,大约有60个点可见。 完整的代码,生成我原来的3次尝试,6502提供boxsum平滑解决scheme和卢克build议的高斯filter(改进处理边缘更好,允许放大)在这里: import matplotlib import numpy as np from matplotlib.mlab import griddata import matplotlib.cm as cm import matplotlib.pyplot as plt import math from scipy.spatial import KDTree import time import scipy.ndimage as ndi def grid_density_kdtree(xl, yl, xi, yi, dfactor): zz […]

Python绘图库

Python中有哪些替代方法可以用于绘图? 特别是,我正在寻找一些不使用pylab有状态模型的东西 。

如何在matplotlib中首先绘制线条并指向最后一个点

我有一个简单的情节与连接每套的几组点和线。 我想要点绘制在行的顶部(以便该行不显示在点内)。 无论plot顺序和scatter调用,这个情节都是一样的,而不是我想要的。 有一个简单的方法来做到这一点? import math import matplotlib.pyplot as plt def poisson(m): def f(k): e = math.e**(-m) f = math.factorial(k) g = m**k return g*e/f return f R = range(20) L = list() means = (1,4,10) for m in means: f = poisson(m) L.append([f(k) for k in R]) colors = ['r','b','purple'] for c,P in zip(colors,L): […]

Matplotlib /pandas错误使用直方图

我有一个问题,从pandas系列对象的直方图,我不明白为什么它不工作。 代码之前工作正常,但现在没有。 这是我的一些代码(具体来说,我试图做一个直方图的pandas系列对象): type(dfj2_MARKET1['VSPD2_perc']) 输出结果: pandas.core.series.Series 这是我的绘图代码: fig, axes = plt.subplots(1, 7, figsize=(30,4)) axes[0].hist(dfj2_MARKET1['VSPD1_perc'],alpha=0.9, color='blue') axes[0].grid(True) axes[0].set_title(MARKET1 + ' 5-40 km / h') 错误信息: AttributeError Traceback (most recent call last) <ipython-input-75-3810c361db30> in <module>() 1 fig, axes = plt.subplots(1, 7, figsize=(30,4)) 2 —-> 3 axes[1].hist(dfj2_MARKET1['VSPD2_perc'],alpha=0.9, color='blue') 4 axes[1].grid(True) 5 axes[1].set_xlabel('Time spent [%]') C:\Python27\lib\site-packages\matplotlib\axes.pyc in hist(self, x, […]