在Python解释器中的这些指令之后,获得一个带有绘图的窗口:
from matplotlib.pyplot import *
plot([1,2,3])
show()
# other code
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不知道如何继续以交互方式探索show()在程序进行进一步计算时创建的图形.
有可能吗?有时计算很长,如果他们在检查中间结果期间继续进行计算会有所帮助.
这与6月份的早期问题有关:
我有一个自定义混合分布使用第二个自定义分布定义,跟随@Sasha过去一年的许多答案中讨论的行.
定义分布的代码如下:
nDist /: CharacteristicFunction[nDist[a_, b_, m_, s_],
t_] := (a b E^(I m t - (s^2 t^2)/2))/((I a + t) (-I b + t));
nDist /: PDF[nDist[a_, b_, m_, s_], x_] := (1/(2*(a + b)))*a*
b*(E^(a*(m + (a*s^2)/2 - x))* Erfc[(m + a*s^2 - x)/(Sqrt[2]*s)] +
E^(b*(-m + (b*s^2)/2 + x))*
Erfc[(-m + b*s^2 + x)/(Sqrt[2]*s)]);
nDist /: CDF[nDist[a_, b_, m_, s_],
x_] := ((1/(2*(a + b)))*((a + b)*E^(a*x)*
Erfc[(m - x)/(Sqrt[2]*s)] -
b*E^(a*m + …Run Code Online (Sandbox Code Playgroud) 
因此,有才能的人已经想出了如何在Mathematica,LaTeX,Python和R中制作xkcd样式图.
如何使用MATLAB生成如上图所示的图?
我创造了摇摆的线条,但我无法得到摇摆的轴.我想到的唯一解决方案是用摇摆的线覆盖它们,但我希望能够改变实际的轴.我也无法使幽默字体工作,使用的代码位是:
annotation('textbox',[left+left/8 top+0.65*top 0.05525 0.065],...
'String',{'EMBARRASSMENT'},...
'FontSize',24,...
'FontName','Humor',...
'FitBoxToText','off',...
'LineStyle','none');
Run Code Online (Sandbox Code Playgroud)
对于摇摆不定的线,我尝试添加一个小的随机噪声和平滑:
smooth(0.05*randn(size(x)),10)
Run Code Online (Sandbox Code Playgroud)
但是当它们交叉时,我无法使白色背景出现在它们周围......
TL; DR - >如何在不创建任何额外变量
Matplotlib的PyPlot情况下为线图创建图例?
请考虑下面的图表脚本:
if __name__ == '__main__':
PyPlot.plot(total_lengths, sort_times_bubble, 'b-',
total_lengths, sort_times_ins, 'r-',
total_lengths, sort_times_merge_r, 'g+',
total_lengths, sort_times_merge_i, 'p-', )
PyPlot.title("Combined Statistics")
PyPlot.xlabel("Length of list (number)")
PyPlot.ylabel("Time taken (seconds)")
PyPlot.show()
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,这是一个非常基本的使用matplotlib的PyPlot.理想情况下,这会生成如下图:

没什么特别的,我知道.然而,目前尚不清楚在哪些数据被绘制的地方(我试图绘制一些排序算法的数据,长度与时间的关系,我想确保人们知道哪一行是哪一行).因此,我需要一个传奇,但是,请看下面的例子(来自官方网站):
ax = subplot(1,1,1)
p1, = ax.plot([1,2,3], label="line 1")
p2, = ax.plot([3,2,1], label="line 2")
p3, = ax.plot([2,3,1], label="line 3")
handles, labels = ax.get_legend_handles_labels()
# reverse the order
ax.legend(handles[::-1], labels[::-1])
# or sort them by labels
import …Run Code Online (Sandbox Code Playgroud) 我正在学习matplotlib通过学习示例来学习,并且在创建单个绘图之前,许多示例似乎包括如下所示的行...
fig, ax = plt.subplots()
Run Code Online (Sandbox Code Playgroud)
这里有些例子...
我看到这个函数用了很多,尽管这个例子只是试图创建一个图表.还有其他一些优势吗?官方演示subplots()也用于f, ax = subplots创建单个图表时,它之后只引用了ax.这是他们使用的代码.
# Just a figure and one subplot
f, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')
Run Code Online (Sandbox Code Playgroud) 我使用的是R,我有两个数据框:胡萝卜和黄瓜.每个数据框都有一个数字列,列出了所有测量胡萝卜(总计:100k胡萝卜)和黄瓜(总计:50k黄瓜)的长度.
我希望在同一块情节上绘制两个直方图 - 胡萝卜长度和黄瓜长度.它们重叠,所以我想我也需要一些透明度.我还需要使用相对频率而不是绝对数字,因为每组中的实例数不同.
像这样的东西会很好,但我不明白如何从我的两个表创建它:

我需要在图中添加两个子图.一个子图需要大约是第二个(相同高度)的三倍.我使用GridSpec和colspan论证完成了这个,但我想这样做,figure所以我可以保存为PDF.我可以使用figsize构造函数中的参数调整第一个数字,但是如何更改第二个图的大小?
我使用文件中的数据创建了直方图,没有问题.现在我想在同一个直方图中叠加来自另一个文件的数据,所以我做了类似的事情
n,bins,patchs = ax.hist(mydata1,100)
n,bins,patchs = ax.hist(mydata2,100)
Run Code Online (Sandbox Code Playgroud)
但问题是,对于每个区间,只显示具有最高值的条,而另一个区间是隐藏的.我想知道如何用不同的颜色同时绘制两个直方图.
我有一个包含许多子图的图.
fig = plt.figure(num=None, figsize=(26, 12), dpi=80, facecolor='w', edgecolor='k')
fig.canvas.set_window_title('Window Title')
# Returns the Axes instance
ax = fig.add_subplot(311)
ax2 = fig.add_subplot(312)
ax3 = fig.add_subplot(313)
Run Code Online (Sandbox Code Playgroud)
如何向子图添加标题?
fig.suptitle为所有图形添加标题,虽然ax.set_title()存在,但后者不会为我的子图添加任何标题.
谢谢您的帮助.
编辑:纠正错误set_title().谢谢Rutger Kassies
直方图和散点图是可视化数据和变量之间关系的好方法,但最近我一直想知道我缺少哪些可视化技术.您认为最不充分利用的情节是什么?
答案应该: