Time
является непрерывной мерой и должна быть числовой:
chlo$Time<-as.numeric(chlo$Time)
# install.packages("ggplot2") #uncomment and run if you don't have this package
library(ggplot2)
ggplot(chlo,aes(x=Time,y=Growth, colour=Culture))+
geom_point()+
geom_line()
Вопрос о барах ошибок является отдельным один и спросили много раз, поиск функции geom_errorbars()
.
Не делайте этого. Вместо этого храните файлы где-нибудь за пределами дерева документов, а затем сделайте их доступными с помощью сценария (например, php, .Net, любого другого)
Сценарий может проверить, вошли ли они в систему, проверить, разрешен ли им файл, и если так что верни это. Путь, по которому они идут, может выглядеть примерно так ... /download.php?file=mypdf.pdf[1256 visible Что-то вроде ...
<?php
if (IsUserLoggedIn())
readfile('/secret/path/to/file/mypdf.pdf');
?>
Лучший способ - прочитать файл по пути, не доступному через Интернет, и записать его в выходной поток.
Похоже, это показывает пример ОК на php, который, как вам показалось, использовать? Просто добавьте проверку безопасности в начало php и выкиньте их, если они не авторизованы.
http://www.higherpass.com/php/Tutorials/File-Download-Security/
Что вы хотите сделать, так это создать страницу PHP, которая выполняет две функции:
Это ссылка поможет с потоками. И этот код может быть полезным:
header("Content-Disposition: attachment; filename=$name of pdf that you want to download");
header("Content-Type: application/pdf");
header("Content-Length: ".filesize("$location of pdf/$name of pdf that you want to download"));
header("Pragma: no-cache");
header("Expires: 0");
$fp=fopen("$location of pdf/$name of pdf that you want to download","r");
print fread($fp,filesize("$location of pdf/$name of pdf that you want to download"));
fclose($fp);
exit();
Видел это в обсуждении здесь .
лучший способ сделать это - использовать php / asp или файл сценария на стороне сервера, который считывает документ в месте, недоступном извне
этот файл затем может проверить, вошел ли пользователь в систему, и может также скрыть путь к физическому файлу
, чтобы URL-адрес был www.yourwebsite.com/file.php?file=image.png
file.php, чтобы проверить, что пользователь вошел в систему затем он прочитает файл или перенаправит их на страницу входа
Много месяцев назад у меня была похожая проблема с классическим ASP.
Хранил файлы в каталоге вне корневого веб-каталога.
После проверки отправил файл через ADODB.Stream, а затем проверил расширение файла, чтобы убедиться, что у меня установлен правильный mime-тип.
Непонятно, используете ли вы ASP.NET, ASP.NET MVC или что-то еще. Однако этот пост ...
Как я могу представить файл для загрузки из контроллера MVC?
... показывает, как программно вернуть файл пользователю с помощью ASP.NET (вопрос показывает ASP. NET, ответы показывают путь MVC).
Это позволит физическим файлам находиться в папке, недоступной для пользователя иным образом, и позволит вам добавить проверку перед возвратом документа, чтобы гарантировать, что пользователь был зарегистрированный и т. д.
Если вы находитесь на той стадии разработки, когда еще не поздно использовать ASP.NET MVC, сделайте это. Этот сценарий (обслуживание файла) становится однострочным, и многие другие вещи будут проще (в частности, тестирование вашего приложения).
Use a script for access control
Make a script like myurl.com/file.php?docs/mypdf.pdf which checks that the user has rights to access the file. The script will fetch the file from a place that is not visible to the web.
(Optional) Use mod_rewrite to make your urls look nice, and redirect user to the file.php script. Something like:
RewriteCond docs/%{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ file.php/$1 [QSA,L]
This will redirect /docs/mypdf.pdf to /file.php?docs/mypdf.pdf but look nicer for the user.
Вы можете использовать IHttpHandler в .net, хотя вам нужен доступ с использованием подстановочных знаков в IIS. Вы можете использовать обработчик на основе сеанса.