Первая ссылка в Google для 'matplotlib figure size'
AdjustingImageSize ( кэш Google страницы ).
Вот сценарий тестирования от вышеупомянутой страницы. Это создает test[1-3].png
файлы различных размеров того же изображения:
#!/usr/bin/env python
"""
This is a small demo file that helps teach how to adjust figure sizes
for matplotlib
"""
import matplotlib
print "using MPL version:", matplotlib.__version__
matplotlib.use("WXAgg") # do this before pylab so you don'tget the default back end.
import pylab
import numpy as np
# Generate and plot some simple data:
x = np.arange(0, 2*np.pi, 0.1)
y = np.sin(x)
pylab.plot(x,y)
F = pylab.gcf()
# Now check everything with the defaults:
DPI = F.get_dpi()
print "DPI:", DPI
DefaultSize = F.get_size_inches()
print "Default size in Inches", DefaultSize
print "Which should result in a %i x %i Image"%(DPI*DefaultSize[0], DPI*DefaultSize[1])
# the default is 100dpi for savefig:
F.savefig("test1.png")
# this gives me a 797 x 566 pixel image, which is about 100 DPI
# Now make the image twice as big, while keeping the fonts and all the
# same size
F.set_size_inches( (DefaultSize[0]*2, DefaultSize[1]*2) )
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test2.png")
# this results in a 1595x1132 image
# Now make the image twice as big, making all the fonts and lines
# bigger too.
F.set_size_inches( DefaultSize )# resetthe size
Size = F.get_size_inches()
print "Size in Inches", Size
F.savefig("test3.png", dpi = (200)) # change the dpi
# this also results in a 1595x1132 image, but the fonts are larger.
Вывод:
using MPL version: 0.98.1
DPI: 80
Default size in Inches [ 8. 6.]
Which should result in a 640 x 480 Image
Size in Inches [ 16. 12.]
Size in Inches [ 16. 12.]
Два примечания:
комментарии модуля и эффективная выходная мощность отличаются.
Этот ответ позволяет легко комбинировать все три изображения в одном файле изображения для наблюдения различия в размерах.
Хотя сначала я должен сказать, что это Chrome ведет себя глупо, и вам, вероятно, не стоит об этом беспокоиться. Попробуйте создать фиктивную форму и с помощью метода GET и программно отправить ее ...
<form id="dummyForm" method="GET" action="#">
<input type="hidden" name="test" value="test" />
</form>
Затем ваш onclick ...
var frm = document.forms["dummyForm"];
frm.action = url;
frm.submit();
Используя jQuery, вы могли бы сделать что-то вроде:
$("table tbody td").wrapInner('<a href="myurl.htm?id=' + getTheIDSomehow + '"></a>');
Так как я не знаю структуру вашей разметки, трудно предоставить более конкретное исправление.
А как насчет «щелчка» по ссылке с помощью JS?
<a href="/url.html" id="clickme">blah blah</a>
<script type="text/javascript">
$(document).ready(function() {
$('#clickme').click();
});
</script>
Я не уверен, работает ли это, но он должен имитировать щелчок по ссылке пользователем.
Взяв то, что рекомендовал Джош Стодола, и применив вместо этого jquery, я создал метод, который, кажется, позволяет обойти эту проблему Chrome без больших накладных расходов на разметку.
Вот полностью рабочая версия.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Row Navigation with History</title>
<style type="text/css">
body {
font: 14px Georgia, serif;
}
#page-wrap {
width: 800px;
margin: 0 auto;
}
table {
border-collapse:collapse;
width:100%;
}
thead {
text-align:left;
font: 16px serif;
}
tbody {
font: 14px Georgia, serif;
}
tr {
cursor:pointer;
}
td {
border: 1px solid #ccc;
padding:10px;
}
.slim {
width:88px;
}
.wide {
width:300px;
}
.hover {
background-color:#eee;
}
</style>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load("jquery", "1.3.2");
</script>
<script type="text/javascript">
$(function() {
$("td").hover(function() {
$(this).parent().addClass("hover");
}, function() {
$(this).parent().removeClass("hover");
});
$("tr").click(function() {
if (navigator.userAgent.toString().indexOf("Chrome/2") != -1)
{
var form = $("<form></form>");
form.attr("method", "get");
form.attr("action", $(this).attr("rel"));
form.submit();
} else {
location.href = $(this).attr("rel");
}
});
});
</script>
</head>
<body>
<div id="page-wrap">
<table>
<colgroup />
<colgroup class="wide" />
<colgroup class="slim" />
<colgroup class="slim" />
<thead>
<tr>
<th>Title</th>
<th>Description</th>
<th>Date</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr rel="http://stackoverflow.com/questions/1173912/what-is-a-good-solution-for-cross-browser-javascript-redirect-with-history">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
<tr rel="http://www.stackoverflow.com">
<td>Title</td>
<td>Description</td>
<td>1/1/2009</td>
<td>Available</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
хром не поддерживается location.reload. Используйте window.open (url, '_self') для перенаправления страницы