我想在semilog 图上绘制数据x和y错误栏ebar,以及它的适合度yfitted.这似乎不起作用:
figure;
hold on;
errorbar(x,y,ebar);
semilogy(x,yfitted);
Run Code Online (Sandbox Code Playgroud)
而不是semilog情节我得到一个线性图.我应该做些什么呢?
我有一个正方形,最近的点距离中心1个单位.请参阅下面的ascii图:
+-----------+
| |
| x |
|-----+ |
| |
| |
+-----------+
Run Code Online (Sandbox Code Playgroud)
因此,从原点到角落的距离是sqrt(2).我需要一个函数,以任何角度返回从原点到正方形上的点的距离.例如,对于0的输入,函数将返回1.对于45的输入,函数将返回到角的距离,2的平方根.然后对于90,它将再次返回1.
换句话说,当您使用极坐标图绘制函数时,它将绘制一个正方形.
我相信这个函数会是这样的:
f(x) = sqrt(tan(x)^2+1)
Run Code Online (Sandbox Code Playgroud)
唯一的问题是上面的函数不会绘制正方形的边.我需要能够吸引所有四方面的东西.
我知道有一个类似于此的东西的三角函数,但我将在javascript中使用这个函数,所以我只能使用标准的三角函数.
任何帮助将不胜感激.提前致谢.
我试图绘制a和b,每个包含7500个数据点.但是,当我尝试绘图(x,y)时,我收到以下错误:
> plot(a[11],b[11])
Error in xy.coords(x, y, xlabel, ylabel, log) :
(list) object cannot be coerced to type 'double'
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为所有值都是整数.我能做什么?
谢谢.
我正在尝试使用Cubic Hermite Splines绘制图形.我从这个插值方法页面中抓取了这样做的简单代码.
这是我的代码:
private float HermiteInterpolate(float y0, float y1, float y2, float y3, float mu)
{
var mu2 = mu * mu;
var a0 = -0.5f * y0 + 1.5f * y1 - 1.5f * y2 + 0.5f * y3;
var a1 = y0 - 2.5f * y1 + 2f * y2 - 0.5f * y3;
var a2 = -0.5f * y0 + 0.5f * y2;
var a3 = y1;
return (a0 * mu * …Run Code Online (Sandbox Code Playgroud) 我想在图表上放一个带圆圈的数字作为标记靠近(但不是在点).听起来很简单,但我也希望变焦/宽高比变化不变.
由于这个不变量,我无法将圆形绘制为线对象(无需在重新缩放时重绘它); 如果我使用圆形标记,我必须在重新缩放时调整其偏移量.
我能想到的最简单的方法是在text()函数的字符串中使用Unicode或Wingdings字符①②③等.但unicode似乎不能正常工作,以下示例仅适用于①而不适用于其他数字(产生矩形框):
作品:
clf; text(0.5,0.5,char(129),'FontName','WingDings')
Run Code Online (Sandbox Code Playgroud)
不起作用(应该是带圆圈的2):
clf; text(0.5,0.5,char(130),'FontName','WingDings')
Run Code Online (Sandbox Code Playgroud)
什么给了,有人可以建议一个解决方法吗?
我有一个我需要绘制的大型时间序列数据集,并且我正在尝试使用D3来完成它.我计划让我的图表的x轴为时间,并允许图形在x方向上移动.我想让图表仅加载/显示屏幕上当前时间范围内存在的点.
例如,如果我的数据集的时间为1-100,但图表以1-10显示的时间开始,则图表应仅绘制点1-10.然后用户可以向右移动并查看时间5-15,并且图表应该相应地更新.
任何人都可以向我解释如何通过d3完成这项工作?我很难将立即加载的整个数据集中的理解与立即绘制成数据子集的选择性图形.
我正在尝试使用来自2个或更多不均匀的pandas数据帧的数据创建堆叠直方图?到目前为止,我可以让他们在彼此之上绘制图形而不是堆叠.
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('dert.csv', encoding = "ISO-8859-1", index_col=0)
df1['text'] = df['text'].dropna(subset=['five'])
df2['printed'] = df['text2']
ax = df1['text'].hist( bins=100, range=(1,100), stacked=True, color = 'r')
ax = df2['printed'].hist(bins=100, range=(1,100), stacked=True, color = 'g')
plt.setp(ax.get_xticklabels(), rotation=45)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我怎样让他们堆叠?
我找到了一个解决方案,但它没有使用pandas数据帧Matplotlib,从三个不等长的数组创建堆叠直方图
我的程序可以在5秒内生成最多2000000个点,所以我对速度没有问题。现在我正在使用 matplotlib.pyplot.scatter 将所有点分散在图表上。对于s=1,它给了我小圆圈,但还不够小,因为它没有显示复杂的图案。当我使用 时s=0.1,它给了我这个奇怪的标记形状:
尽管我将尺寸缩小了,但这使得标记更大。我已经在互联网上进行了搜索,包括堆栈溢出,但他们没有告诉如何进一步最小化大小。不幸的是,我必须展示所有的点,而不能只展示其中的随机样本。
我得出的结论是,matplotlib 是为小样本点而设计的,而不是为了绘制数百万个点。但是,如果可以缩小尺寸,请告诉我。
无论如何,就我的观点而言,我将所有 x 值按顺序排列在一个数组中,并将所有 y 值按顺序排列在另一个数组中。有人可以建议我在Python中使用一个绘图包来绘制所有点的图形吗?因为当我现在绘制这些点时,它只是变成一大块颜色,而不是像下面这样形成复杂的设计:他们应该是。
感谢您提前提供任何帮助!
编辑:我用来分散点的代码是:
plt.savefig(rootDir+"b"+str(Nvertices)+"_"+str(xscale)+"_"+str(yscale)+"_"+str(phi)+"_"+str(psi)+"_"+CurrentRun+"_color.png", dpi =600)
Run Code Online (Sandbox Code Playgroud)
编辑:我得到了答案,我补充说linewidths = 0,这大大减少了点的大小,给了我我需要的东西。
以下面的代码示例为例:
import numpy as np
import matplotlib.pyplot as plt
f = np.random.random(100)
g = np.random.random(100)
fig = plt.figure(figsize=(15,15))
fig.suptitle('Long Suptitle', fontsize=24)
plt.subplot(121)
plt.plot(f)
plt.title('Very Long Title 1', fontsize=20)
plt.subplot(122)
plt.plot(g)
plt.title('Very Long Title 2', fontsize=20)
plt.subplots_adjust(top=0.85)
plt.show()
Run Code Online (Sandbox Code Playgroud)
运行它会显示两个带有单独标题的子图,但是整体图形标题“ Long Suptitle”不可见。
但是,如果删除figsize=(15,15),则整体图形标题将再次变为可见。
suptitle()修改图形大小时是否可以使文本可见?
graphing ×10
matplotlib ×3
python ×3
javascript ×2
math ×2
matlab ×2
annotations ×1
bar-chart ×1
c# ×1
cocoa ×1
d3.js ×1
frameworks ×1
linegraph ×1
pandas ×1
plot ×1
r ×1
spline ×1
trigonometry ×1